A nicer way to handle permissions on Deno

Better Permissions

Better Permissions provides a nicer way for configuring permissions for your Deno scripts using Typescript files!

Usage

Better Permissions provides an API that permits generating Deno scrips permissions flags, from a defined configuration object:

import { 
  generatePermisions, 
  PermissionOptions 
  } from "https://deno.land/x/better_permissions@v0.0.1/mod.ts";

const options: PermissionOptions = {
    env: true,
    net: ["deno.land", "github.com"],
    read: ["./config.json"],
    write: ["/tmp"],
    hrtime: true,
    run: false
}

const flags = generatePermisions(options);

const p = Deno.run({ cmd: ["deno", "run", ...flags, "app.ts"]});
await p.status();

Another way the Better Permissions API works nicely is together with Drake. Example drakefile using better-permisions:

import { desc, run, task, sh } from "https://deno.land/x/drake@v1.2.4/mod.ts";
import { 
  generatePermisionsString, PermissionOptions 
} from "https://deno.land/x/better_permissions@v0.0.1/mod.ts";

const devOptions: PermissionOptions = {
    env: true,
    net: ["deno.land", "github.com"],
    read: ["./config.json"],
    write: ["/tmp"],
    hrtime: true,
    run: false
};

desc("Execute application with development permissions");
task("run-dev", [], function() {
  sh(`deno run ${generatePermisionsString(devOptions)} app.ts`);
});

run()

also provide a Wrapper CLI for Deno that can installed executing the command:

deno install -A -n bpdeno https://deno.land/x/better_permissions@v0.0.1/cli.ts

and the we can execute a scripts using the following parameters:

bpdeno run -p permissions.config.ts app.ts

being the permissions.config.js a Typescript file that follows the format:

import { PermissionOptions } from "https://deno.land/x/better_permissions@v0.0.1/mod.ts";

const options: PermissionOptions ={
    env: true,
    net: ["deno.land", "github.com"],
    read: true,
    write: false,
    hrtime: true,
    run: false
};

export default options;

Download Details:

Author: rafaelmotaalves

Source Code: https://github.com/rafaelmotaalves/better_permissions

#deno #nodejs #javascript #node

A nicer way to handle permissions on Deno
3.95 GEEK