feat(blueprints): add declarative blueprints #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/blueprints"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
feat/audit-log); the base branch is the audit log because blueprint changes are audited.Changes
Blueprints.plan/2,execute/2,export/1. Resources are matched by domain (HTTP) or protocol and port (TCP/UDP). Matches are updated, others created, nothing is ever deleted. A section left out of a resource is untouched; a section present is declared in full.Blueprints.Parser): errors carry blueprint paths (resources[1].targets[0].host). It refuses anchors, aliases, merge keys, tags, tabs, duplicate keys, unknown keys and secret keys (passwords, PINs, share links), limits size (256 KB), resources (200), children (100) and nesting, creates no atoms, and runs in a separate process with a heap and time limit. The library resolves several of these silently (duplicate keys take the first, aliases expand), which is why the parser is stricter than it.Blueprints.Yaml), without secrets.Broadcastsholds PubSub messages until the transaction commits.Audit.writejoins an outer transaction. Saving an unchanged node list is no longer logged as a change./orgs/:org/blueprints(admins): preview, apply, load current configuration.GET /api/v1/blueprint(any key),POST /api/v1/blueprints/planand/apply(write keys), documented in the OpenAPI spec; problems are422keyed by path.yaml_elixir2.12.2 (approved). Maintenance note: it is current, but its parseryamerllast released in 2022.Verification
mix format --check-formatted,mix compile --warnings-as-errors,mix credo --strict(no issues),mix dialyzer(0 errors).mix test: 837 passed on SQLite and on PostgreSQL. No migration in this change.