Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cmorten/permission-guard

A zero-dependency, minimal permission guard for Deno.
https://github.com/cmorten/permission-guard

deno deno-doc deno-module denojs denoland permission-guard permission-manager permissions protection security security-hardening

Last synced: 4 months ago
JSON representation

A zero-dependency, minimal permission guard for Deno.

Awesome Lists containing this project

README

        


Permission Guard


A zero-dependency, minimal permission guard for Deno to prevent overly permissive execution of your applications.



Current version
Current test status
Deno docs
PRs are welcome
permission-guard issues
permission-guard stars
permission-guard forks
permission-guard license
permission-guard is maintained
Published on nest.land



permission-guard latest /x/ version
permission-guard dependency count
permission-guard dependency outdatedness
permission-guard cached size

---

## Table of Contents

- [Getting Started](#getting-started)
- [Installation](#installation)
- [Features](#features)
- [Documentation](#documentation)
- [Examples](#examples)
- [Contributing](#contributing)
- [License](#license)

## Getting Started

```ts
import { guard } from "https://deno.land/x/[email protected]/mod.ts";

await guard();

console.log("Execute my code...!");
```

## Installation

This is a [Deno](https://deno.land/) module available to import direct from this repo and via the [Deno Registry](https://deno.land/x).

Before importing, [download and install Deno](https://deno.land/#installation).

You can then import Permission Guard straight into your project:

```ts
import { guard } from "https://deno.land/x/[email protected]/mod.ts";
```

Permission Guard is also available on [nest.land](https://nest.land/package/permissionGuard), a package registry for Deno on the Blockchain.

```ts
import { guard } from "https://x.nest.land/[email protected]/mod.ts";
```

> **Note:** Permission Guard makes use of the unstable Deno Permissions API which requires `--unstable` to be passed in the Deno `run` command. You can use Permission Guard in applications and not provide the `--unstable` flag, Permission Guard will simply return as a no-op and not provide any defenses.

## Features

- Protection against unnecessary top-level permissions. Including ability to revoke undesired permissions.
- Protection against missing required permissions.
- Recommendations where permissions could be better scoped (if `log: true` provided).
- Useful logs detailing the missing or insecure permissions (if `log: true` provided).

## Documentation

- [Permission Guard Docs](https://asos-craigmorten.github.io/permission-guard/) - usually the best place when getting started ✨
- [Permission Guard Deno Docs](https://doc.deno.land/https/deno.land/x/permissionGuard/mod.ts)
- [License](https://github.com/asos-craigmorten/permission-guard/blob/main/LICENSE.md)
- [Changelog](https://github.com/asos-craigmorten/permission-guard/blob/main/.github/CHANGELOG.md)

## Examples

To run the [examples](./examples), you have two choices:

1. Clone the Permission Guard repo locally:

```bash
git clone git://github.com/asos-craigmorten/permission-guard.git --depth 1
cd permission-guard
```

Then run the example you want:

```bash
deno run --unstable ./examples/defaults/index.ts
```

All the [examples](./examples) contain example commands in their READMEs to help get you started.

## Contributing

[Contributing guide](https://github.com/asos-craigmorten/permission-guard/blob/main/.github/CONTRIBUTING.md)

---

## License

Permission Guard is licensed under the [MIT License](./LICENSE.md).