Policy chain designer, product quota, token-only users (#42) #44

Merged
Marc merged 8 commits from feature/issue-42-policy-chain-designer into main 2026-08-04 11:42:43 +00:00
Contributor

Summary

  • Dashboard policy-chain designer with derived policies; Policy layers, product edit, admin API keys
  • Product quota enforced as implicit throttle; token-only service users (no dashboard login)
  • Docs/tests for API keys, gateway flow policies, and identity token-only accounts

Closes #42

Test plan

  • Create derived policy via designer and replace a chain step
  • Edit product rate limit / routes; verify product-layer throttle
  • Admin: create API key for a user
  • IAM: create token-only user → cannot login → admin API key works
  • Focused tests: test_identity_token_only_user_cannot_login, policy chain tests
## Summary - Dashboard policy-chain designer with derived policies; Policy layers, product edit, admin API keys - Product quota enforced as implicit throttle; token-only service users (no dashboard login) - Docs/tests for API keys, gateway flow policies, and identity token-only accounts Closes #42 ## Test plan - [ ] Create derived policy via designer and replace a chain step - [ ] Edit product rate limit / routes; verify product-layer throttle - [ ] Admin: create API key for a user - [ ] IAM: create token-only user → cannot login → admin API key works - [ ] Focused tests: `test_identity_token_only_user_cannot_login`, policy chain tests
Add derived policy chain designer.
All checks were successful
Build & Push Docker Images / Runner Preflight (push) Successful in 1s
Build & Push Docker Images / Validate JavaScript Syntax (push) Successful in 4s
Build & Push Docker Images / Validate Repository Structure (push) Successful in 3s
Build & Push Docker Images / Detect Changed Components (push) Successful in 25s
Build & Push Docker Images / Validate Workflow YAML (push) Successful in 13s
Build & Push Docker Images / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (push) Successful in 38s
Test & Validate / Validate Repository Structure (push) Successful in 4s
Test & Validate / Validate Workflow YAML (push) Successful in 13s
Test & Validate / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (push) Has been skipped
Test & Validate / Test Engine Smoke Suite (pytest) (push) Successful in 39s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (push) Has been skipped
Build & Push Docker Images / Build Wiki (MkDocs) (push) Successful in 30s
Build & Push Docker Images / Test Summary (push) Successful in 1s
Build & Push Docker Images / Test Gate (push) Successful in 0s
Test & Validate / Test Summary (push) Successful in 0s
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (push) Successful in 27s
Build & Push Docker Images / Publish Release Bundle (push) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (push) Successful in 1s
Build & Push Docker Images / Build Summary (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
5347eb7953
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose hidden dashboard navigation.
All checks were successful
Build & Push Docker Images / Runner Preflight (push) Successful in 1s
Build & Push Docker Images / Validate JavaScript Syntax (push) Successful in 4s
Test & Validate / Validate Repository Structure (push) Successful in 3s
Test & Validate / Validate Workflow YAML (push) Successful in 14s
Test & Validate / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Detect Changed Components (push) Successful in 8s
Build & Push Docker Images / Validate Repository Structure (push) Successful in 3s
Test & Validate / Test Engine Smoke Suite (pytest) (push) Successful in 38s
Build & Push Docker Images / Validate Workflow YAML (push) Successful in 13s
Build & Push Docker Images / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (push) Has been skipped
Build & Push Docker Images / Build Wiki (MkDocs) (push) Successful in 6s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (push) Has been skipped
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (push) Successful in 37s
Test & Validate / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Gate (push) Successful in 0s
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (push) Successful in 24s
Build & Push Docker Images / Publish Release Bundle (push) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (push) Successful in 0s
Build & Push Docker Images / Build Summary (push) Successful in 0s
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
6d309abf31
Co-authored-by: Cursor <cursoragent@cursor.com>
Add product edit dialog.
All checks were successful
Build & Push Docker Images / Runner Preflight (push) Successful in 0s
Build & Push Docker Images / Validate JavaScript Syntax (push) Successful in 4s
Test & Validate / Validate Repository Structure (push) Successful in 3s
Test & Validate / Validate Workflow YAML (push) Successful in 13s
Test & Validate / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Detect Changed Components (push) Successful in 5s
Build & Push Docker Images / Validate Repository Structure (push) Successful in 3s
Test & Validate / Test Engine Smoke Suite (pytest) (push) Successful in 38s
Build & Push Docker Images / Validate Workflow YAML (push) Successful in 13s
Build & Push Docker Images / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (push) Has been skipped
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (push) Successful in 37s
Build & Push Docker Images / Build Wiki (MkDocs) (push) Successful in 6s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (push) Has been skipped
Test & Validate / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Gate (push) Successful in 0s
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (push) Successful in 24s
Build & Push Docker Images / Publish Release Bundle (push) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (push) Successful in 0s
Build & Push Docker Images / Build Summary (push) Successful in 0s
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
457b28645b
Co-authored-by: Cursor <cursoragent@cursor.com>
Rename Products nav to Policy layers and add sidebar icons.
All checks were successful
Build & Push Docker Images / Runner Preflight (push) Successful in 0s
Build & Push Docker Images / Validate JavaScript Syntax (push) Successful in 4s
Test & Validate / Validate Repository Structure (push) Successful in 3s
Test & Validate / Validate Workflow YAML (push) Successful in 14s
Test & Validate / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Detect Changed Components (push) Successful in 6s
Build & Push Docker Images / Validate Repository Structure (push) Successful in 3s
Test & Validate / Test Engine Smoke Suite (pytest) (push) Successful in 38s
Build & Push Docker Images / Validate Workflow YAML (push) Successful in 13s
Build & Push Docker Images / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (push) Has been skipped
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (push) Successful in 37s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (push) Has been skipped
Build & Push Docker Images / Build Wiki (MkDocs) (push) Successful in 33s
Test & Validate / Test Summary (push) Successful in 0s
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (push) Successful in 27s
Build & Push Docker Images / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Gate (push) Successful in 0s
Build & Push Docker Images / Publish Release Bundle (push) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (push) Successful in 1s
Build & Push Docker Images / Build Summary (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
753e5a821f
Co-authored-by: Cursor <cursoragent@cursor.com>
Enforce product quota and drop trigger policy text field.
All checks were successful
Build & Push Docker Images / Runner Preflight (push) Successful in 0s
Build & Push Docker Images / Validate JavaScript Syntax (push) Successful in 4s
Test & Validate / Validate Repository Structure (push) Successful in 3s
Test & Validate / Validate Workflow YAML (push) Successful in 14s
Test & Validate / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Detect Changed Components (push) Successful in 6s
Build & Push Docker Images / Validate Repository Structure (push) Successful in 3s
Test & Validate / Test Engine Smoke Suite (pytest) (push) Successful in 38s
Build & Push Docker Images / Validate Workflow YAML (push) Successful in 13s
Build & Push Docker Images / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (push) Has been skipped
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (push) Successful in 37s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (push) Has been skipped
Build & Push Docker Images / Build Wiki (MkDocs) (push) Successful in 30s
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (push) Successful in 25s
Test & Validate / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Gate (push) Successful in 0s
Build & Push Docker Images / Build (gateway) Engine Services [./engine/services/gateway] (gateway, ./engine/services/gateway) (push) Successful in 14s
Build & Push Docker Images / Publish Release Bundle (push) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (push) Successful in 0s
Build & Push Docker Images / Build Summary (push) Successful in 0s
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
6cd0ba6ef3
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow admins to create API keys for users.
All checks were successful
Build & Push Docker Images / Runner Preflight (push) Successful in 0s
Build & Push Docker Images / Validate JavaScript Syntax (push) Successful in 4s
Test & Validate / Validate Repository Structure (push) Successful in 3s
Test & Validate / Validate Workflow YAML (push) Successful in 13s
Test & Validate / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Detect Changed Components (push) Successful in 6s
Build & Push Docker Images / Validate Repository Structure (push) Successful in 3s
Test & Validate / Test Engine Smoke Suite (pytest) (push) Successful in 38s
Build & Push Docker Images / Validate Workflow YAML (push) Successful in 13s
Build & Push Docker Images / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (push) Has been skipped
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (push) Successful in 36s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (push) Has been skipped
Build & Push Docker Images / Build Wiki (MkDocs) (push) Successful in 31s
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (push) Successful in 26s
Build & Push Docker Images / Build (gateway) Engine Services [./engine/services/gateway] (gateway, ./engine/services/gateway) (push) Successful in 16s
Test & Validate / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Gate (push) Successful in 0s
Build & Push Docker Images / Build (identity) Engine Services [./engine/services/identity] (identity, ./engine/services/identity) (push) Successful in 20s
Build & Push Docker Images / Publish Release Bundle (push) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (push) Successful in 1s
Build & Push Docker Images / Build Summary (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
30bf453589
Co-authored-by: Cursor <cursoragent@cursor.com>
Add token-only service users for API-key identities.
All checks were successful
Build & Push Docker Images / Runner Preflight (push) Successful in 1s
Test & Validate / Validate Repository Structure (push) Successful in 5s
Build & Push Docker Images / Validate JavaScript Syntax (push) Successful in 7s
Build & Push Docker Images / Validate Repository Structure (push) Successful in 4s
Build & Push Docker Images / Detect Changed Components (push) Successful in 7s
Build & Push Docker Images / Validate Workflow YAML (push) Successful in 14s
Build & Push Docker Images / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (push) Successful in 38s
Test & Validate / Validate Workflow YAML (push) Successful in 13s
Test & Validate / Validate Kubernetes Manifests (push) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (push) Has been skipped
Test & Validate / Test Engine Smoke Suite (pytest) (push) Successful in 37s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (push) Has been skipped
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (push) Successful in 26s
Build & Push Docker Images / Build Wiki (MkDocs) (push) Successful in 29s
Build & Push Docker Images / Build (gateway) Engine Services [./engine/services/gateway] (gateway, ./engine/services/gateway) (push) Successful in 16s
Build & Push Docker Images / Test Summary (push) Successful in 0s
Build & Push Docker Images / Test Gate (push) Successful in 0s
Test & Validate / Test Summary (push) Successful in 1s
Build & Push Docker Images / Build (identity) Engine Services [./engine/services/identity] (identity, ./engine/services/identity) (push) Successful in 21s
Build & Push Docker Images / Publish Release Bundle (push) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (push) Successful in 0s
Build & Push Docker Images / Build Summary (push) Successful in 0s
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
c49e3ddbd0
Admins can create passwordless accounts that cannot dashboard-login but still own products, policies, and admin-issued API keys.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document Forgejo auth via FORGEJO_TOKEN for agents.
All checks were successful
Build & Push Docker Images / Trigger Deploy DEV (dev) (push) Successful in 1s
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (push) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (push) Has been skipped
Build & Push Docker Images / Build Summary (push) Successful in 1s
Build & Push Docker Images / Validate JavaScript Syntax (pull_request) Successful in 4s
Test & Validate / Validate Repository Structure (pull_request) Successful in 3s
Test & Validate / Validate Workflow YAML (pull_request) Successful in 14s
Test & Validate / Validate Kubernetes Manifests (pull_request) Successful in 5s
Test & Validate / Test Engine Smoke Suite (pytest) (pull_request) Successful in 38s
Build & Push Docker Images / Runner Preflight (pull_request) Successful in 0s
Build & Push Docker Images / Detect Changed Components (pull_request) Successful in 6s
Build & Push Docker Images / Validate Repository Structure (pull_request) Successful in 3s
Build & Push Docker Images / Validate Workflow YAML (pull_request) Successful in 13s
Build & Push Docker Images / Validate Kubernetes Manifests (pull_request) Successful in 5s
Build & Push Docker Images / Build Forgejo Runner Image (pull_request) Has been skipped
Build & Push Docker Images / Test Engine Smoke Suite (pytest) (pull_request) Successful in 37s
Build & Push Docker Images / Build Wiki (MkDocs) (pull_request) Successful in 5s
Build & Push Docker Images / Sync Wiki Docs to Forgejo Wiki (pull_request) Has been skipped
Build & Push Docker Images / Build (gateway) Engine Services [./engine/services/gateway] (gateway, ./engine/services/gateway) (pull_request) Successful in 16s
Build & Push Docker Images / Build (dashboard) Engine Services [./engine/services/dashboard] (dashboard, ./engine/services/dashboard) (pull_request) Successful in 27s
Test & Validate / Test Summary (pull_request) Successful in 0s
Build & Push Docker Images / Build (identity) Engine Services [./engine/services/identity] (identity, ./engine/services/identity) (pull_request) Successful in 19s
Build & Push Docker Images / Test Summary (pull_request) Successful in 0s
Build & Push Docker Images / Test Gate (pull_request) Successful in 0s
Build & Push Docker Images / Publish Release Bundle (pull_request) Successful in 1s
Build & Push Docker Images / Resolve Auto-Deploy Targets (pull_request) Successful in 0s
Build & Push Docker Images / Trigger Deploy DEV (dev) (pull_request) Successful in 1s
Build & Push Docker Images / Build Summary (pull_request) Successful in 0s
Build & Push Docker Images / Trigger Deploy TST/LAB (lab) (pull_request) Has been skipped
Build & Push Docker Images / Trigger Deploy TST/LAB (tst) (pull_request) Has been skipped
c744813c44
Keep API calls on code.meshflows.org token-based without pasting secrets into chat.

Co-authored-by: Cursor <cursoragent@cursor.com>
Marc merged commit d41dc851aa into main 2026-08-04 11:42:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
MeshFlowsGPL/meshflows!44
No description provided.