Cropwright — Projects and Config Store

Cropwright — Projects and Config Store An architecture diagram generated by Archify. URL /p/<slug>/... · the only record of the active project · Architecture component URL /p/<slug>/... the only record of the active project projectsStore + switcher · selects project, resets caches · Architecture component projectsStore + switcher selects project, resets caches scoped() / globalApi() · fails closed until selected · Architecture component scoped() / globalApi() fails closed until selected Config editors · packs, profiles, VLM, keymap · Architecture component Config editors packs, profiles, VLM, keymap Projects API (global) · list, lifecycle, combine · Architecture component Projects API (global) list, lifecycle, combine Project API (scoped) · prefix per project · Architecture component Project API (scoped) prefix per project Config store · revisions + active pointer · Architecture component Config store revisions + active pointer Models + sharing · owner, shared, class mapping · Architecture component Models + sharing owner, shared, class mapping VLM endpoint registry · shared by every project · Architecture component VLM endpoint registry shared by every project Host secrets · API keys, never sent to the browser · Architecture component Host secrets API keys, never sent to the browser slug served prefix list / select validate / save / activate activate reference only Legend Frontend Backend Database Security

The URL is the project

  • • Nothing about the active project is persisted in the browser
  • • On a switch every per-project cache resets and a late response for the old project is dropped

Revisioned, activate-able config

  • • Saves create revisions and carry the revision you started from, so a concurrent edit is a conflict, not an overwrite
  • • Activation pins one revision, can be rolled back, and an impact or validation report precedes it

Secrets never reach the browser

  • • An endpoint stores a reference to a host secret; the app shows the reference and whether the host has it
  • • An endpoint that sends crops outside the deployment needs an explicit acknowledgement