0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-30 09:08:00 -04:00
denoland-deno/Roadmap.md

62 lines
1.9 KiB
Markdown
Raw Normal View History

2018-06-15 07:33:23 -04:00
# Deno Roadmap
API and Feature requests should be submitted as PRs to this document.
2018-09-22 08:43:44 -04:00
## Security Model (partially implemented)
2018-06-29 08:14:26 -04:00
2018-10-04 05:01:21 -04:00
- We want to be secure by default; user should be able to run untrusted code,
2018-06-29 08:14:26 -04:00
like the web.
2018-10-04 05:01:21 -04:00
- Threat model:
- Modifiying/deleting local files
- Leaking private information
- Disallowed default:
- Network access
- Local write access
- Non-JS extensions
- Subprocesses
- Env access
- Allowed default:
- Local read access.
- argv, stdout, stderr, stdin access always allowed.
- Maybe: temp dir write access. (But what if they create symlinks there?)
- The user gets prompted when the software tries to do something it doesn't have
2018-06-29 08:14:26 -04:00
the privilege for.
2018-10-04 05:01:21 -04:00
- Have an option to get a stack trace when access is requested.
- Worried that granting access per file will give a false sense of security due
2018-06-29 08:14:26 -04:00
to monkey patching techniques. Access should be granted per program (js
context).
2018-07-03 15:18:42 -04:00
Example security prompts. Options are: YES, NO, PRINT STACK
2018-10-04 05:01:21 -04:00
2018-07-03 15:18:42 -04:00
```
Program requests write access to "~/.ssh/id_rsa". Grant? [yNs]
http://gist.github.com/asdfasd.js requests network access to "www.facebook.com". Grant? [yNs]
Program requests access to environment variables. Grant? [yNs]
Program requests to spawn `rm -rf /`. Grant? [yNs]
```
2018-06-29 08:14:26 -04:00
2018-10-04 05:01:21 -04:00
- cli flags to grant access ahead of time --allow-all --allow-write --allow-net
2018-06-29 08:14:26 -04:00
--allow-env --allow-exec
2018-10-04 05:01:21 -04:00
- in version two we will add ability to give finer grain access
2018-06-29 08:14:26 -04:00
--allow-net=facebook.com
## Top-level Await (Not Implemented)
2018-06-15 07:33:23 -04:00
2018-10-11 05:43:47 -04:00
[#471](https://github.com/denoland/deno/issues/471)
2018-06-15 07:33:23 -04:00
2018-10-04 05:01:21 -04:00
This will be put off until at least deno2 Milestone1 is complete. One of the
major problems is that top-level await calls are not syntactically valid
TypeScript.
### [Broken] List dependencies of a program.
Currently broken: https://github.com/denoland/deno/issues/1011
```
% deno --deps http://gist.com/blah.js
http://gist.com/blah.js
http://gist.com/dep.js
https://github.com/denoland/deno/master/testing.js
%
```