A functional resource-oriented Web framework
Project description
RESTrict Framework
Please see https://restrictframework.io for the most up-to-date documentation.
TODO
- TODO: Change Ref -> Self visitor to skip data section
- TODO: Write visitor to check Self in data section
- TODO: Allow stars in security sections
- TODO: Update visitors.MatchRelDeclared...#visit_rel to search mods, too, for built-in resources
- TODO: Update visitors.MatchOverridenResource...#visit_resource to search mods, too, for built-in resources
- TODO: Consider allowing modification of restrict resources in ResolveModifyTypeVisitor
NOTES
Compiler pipeline steps:
- Check for duplicate field and resource names
- Replace refs with func params
- Replace refs with selfs
- Resolve declared types
- Resolve data constrained field type (res: type)
- Resolve rel type (res: bridge, restrict resource, or collection)
- Resolve create type (res: bridge or restrict resource)
- Resolve base resource type (base: bridge)
- Resolve inherited fields
- Resolve inherited rels
- Resolve inherited effects
- Resolve inherited security
- Resolve inherited workflows
- Resolve used resources
- Resolve global names
- Resolve func referenced function (res: function)
- Resolve computed types of expressions
- Resolve effect field type (res: type or bridge)
- Resolve value type (res: type)
- Resolve selves type (res: bridge)
- Resolve self types (path_res: [bridge, ..., type])
- Resolve literal types (res: type)
- Resolve tagged literal types (res: type)
- Resolve modify type (res: bridge)
- Resolve ref type from globals (path_res: type: bridge, ..., type)
- Check for cycles
- Resolve data computed field type (func_res: type)
- Resolve remaining self values
- Resolve func return type and make sure it matches expected type
- Check data constraint (bool)
- Check security rule (bool)
- Check effect (func_res matches res for referenced field)
- Compile funcs (compiled)
- Compile resources
Expresison types
- Data constraints can include literals, functions, self, selves, tagged literals, and value
- Data computed fields can include literals, functions, refs, self, selves, and tagged literals
- Effects can include all create, literals, functions, modify, refs, self, selves, and tagged literals
- Security can include literals, functions, refs, self, and tagged literals
- Workflows can include literals, refs, self, selves, and tagged literals
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file restrict_framework-0.2.1a0.tar.gz.
File metadata
- Download URL: restrict_framework-0.2.1a0.tar.gz
- Upload date:
- Size: 75.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: poetry/2.1.1 CPython/3.12.9 Linux/5.15.154+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d7afdae890e74e00896d5cc49bc727d71b5ea7a5db5780a7e864b6466413947
|
|
| MD5 |
44dfcec50929e5661d9f595992e448a7
|
|
| BLAKE2b-256 |
02cbee020c045f7b1ace37fbf32cd42c31ee3441753737a47591999130820b01
|
File details
Details for the file restrict_framework-0.2.1a0-py3-none-any.whl.
File metadata
- Download URL: restrict_framework-0.2.1a0-py3-none-any.whl
- Upload date:
- Size: 84.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: poetry/2.1.1 CPython/3.12.9 Linux/5.15.154+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ad48e4f8ca3307b09874998e6cc8e3d9a20260f71ee903f4f6fd5fce8b7772c
|
|
| MD5 |
1bdfa9d22601cc6c36c38b16b22e7b79
|
|
| BLAKE2b-256 |
3dc8a6d218865a978c0c567310339ac07e669d57ababb64d02b682dada99a9e7
|