Aug. 4, 2023, 10:12 a.m.

Deno August Update: more flexible security in 1.36, persistent logs in Deno Deploy, and more

Deno News

Hot runtime summer is in full swing and with that comes ton of updates! Read on to learn about more granular security controls in Deno 1.36, searchable and filterable logs on Deno Deploy, simplified route components in Fresh 1.3, and more.

Deno 1.36: More flexible security and expanded testing APIs

Deno’s opt-in permission model gives you control over what your (or third-party) code has access to. Until now, you could either grant unfettered access to a feature or configure specific domains or directories with --allow-* .

In Deno 1.36, we introduce the --deny-* family of runtime flags to enable more flexible permissions for your Deno programs.

$ deno run --allow-net --deny-net=api.evil.com mod.ts

Read the full announcement →

Deno Deploy: filterable, searchable, persistent logs

Debugging is easier on Deno Deploy, now that you can filter and search through your logs within the past 24 hours based on time, level, and region:

image.png

Read the full announcement →

Fresh 1.3: simplified route components and more

We’re doing monthly Fresh minor releases! This cycle saw improved documentation, bug fixes, and new features, many thanks to the community.

The big update here is Async Route Components, which removes boilerplate for building simple components.

Before:

interface Data {
  foo: number;
}

export const handler: Handlers<Data> = {
  async GET(req, ctx) {
    const value = await loadFooValue();
    ctx.render({ foo: value });
  },
};

export default function MyPage(props: PageProps<Data>) {
  return <p>foo is: {props.data.foo}</p>;
}

After:

// After
export default async function MyPage(req: Request, ctx: RouteContext) {
  const value = await loadFooValue();
  return <p>foo is: {value}</p>;
}

Read the full announcement or watch the video →

For the Community

Upcoming Office Hours and Live Coding

These events are a great way to meet the team behind Deno, get your questions answered, and learn about web development.

  • August 8th, 8am PT / 11am ET: Office Hours with Kevin and Bartek: Kevin and Bartek, the lead engineer on Deno CLI, will chat about Deno 1.36, Deno 2, and more.
  • August 17th, 9am PT / 12pm ET: Live Code Session: Join Kevin as he continues to build an entire app with Fresh and Deno! In this session, Kevin adds role-based access control with Auth0 to Fresh.
  • August 24th, 6am PT / 9am ET: Office Hours with Kevin and Arnau: Arnau, who works on Deno Deploy, joins Kevin to discuss the Deploy platform and where it’s headed.

Upcoming Conferences and Meetups

  • August 8th: SeattleJS (Seattle, WA): Kevin Whinnery will be sharing what’s the team has been working on for Deno 2.0.
  • September 21st: TypeScript Congress (Online): David Sherret will give a talk about replacing shell scripts with cross-platform TypeScript.
  • October 10th-11th: Ioniconf (Austin, TX): Kevin Whinnery will present on how to use key/value databases as a backend for you next mobile application project.
  • October 20th: Deno Fest (Tokyo, Japan): Partnered with Toranoana, the Deno team is holding its first mini conference! A full days’ worth of talks from the team as well as community members. If you’re in Tokyo, we’d love for you to join us! If not, we plan to stream the event and publish the talks as videos on our YouTube.
  • November 6th: Node Conf (Kilkenny, Ireland): Kevin Whinnery will present on various cloud KV solutions, its benefits over other persistent data storage solutions, and more.

Community #Showcase

You all have been active building with and writing about Deno! Here’s a (very incomplete) list of projects and articles.

TUI is a framework for building terminal user interfaces. It just hit 2.1 with layouts, performance optimizations, and more.
kvdex is a type-safe, simple Deno KV wrapper with zero third-party dependencies.
This blog post peeks under the Deno hood and is useful if you're interested in building your own JS runtime.
Are you writing an FFI-dependent module? Here’s an in-depth walkthrough on how to publish it to deno.land/x.

For more projects and resources (or if you’d like to share yours), join the Discord’s #showcase channel.

Other Deno updates

Aside from the big updates above, we’ve shipped a bunch of other resources. Check them out below:

  • Build and Ship Astro Sites with Deno and Deno Deploy
  • How the creator of Homebrew simplifies distributing software with tea and Deno
  • dnt — the easiest way to publish a hybrid npm module for ESM and CommonJS
  • Kevin and David take viewer questions and discuss common Deno gotchas (video)
  • Kevin builds and deploys an Astro site to Deno Deploy (video)
  • Intro to islands with Fresh (video)

You just read issue #61 of Deno News.

Share on Twitter Share on LinkedIn Share on Hacker News Share on Reddit Share on Mastodon Share on Bluesky
GitHub Bluesky X