Skip to content

Add supported authz policy mutation and reload operator workflow #83

@cbusillo

Description

@cbusillo

Context

The VeriReel preview PR feedback authz grant exposed too much operator friction. The working path was: read the hosted Launchplane compose target through Dokploy, run a disabled one-off Dokploy schedule, docker exec into the hosted Launchplane service container, write a DB-backed authz policy record from inside the compose network, restart the service process, and then re-run product workflow probes.

That path worked, but it should become a supported Launchplane operator workflow instead of an ad hoc recovery maneuver.

Goals

  • Provide a first-class authz grant command/API that creates a new DB-backed active policy record while preserving existing grants.
  • Provide a safe authz reload path so policy updates do not require manual container restarts.
  • Provide a supported hosted-execution helper for cases where Launchplane DB access must run from inside the Dokploy-hosted service network.
  • Keep every mutation audited and reviewable.

Proposed CLI shape

uv run launchplane authz-policies grant-workflow \
  --repository cbusillo/verireel \
  --workflow-ref "cbusillo/verireel/.github/workflows/preview-fork-notice.yml@*" \
  --product verireel \
  --context verireel-testing \
  --action preview_pr_feedback.write \
  --dry-run

uv run launchplane authz-policies grant-workflow ... --apply

Proposed features

  • Dry-run diff showing the active policy source/sha, new rule, and resulting rule count.
  • Apply mode writes a new active authz policy record and records source/audit metadata.
  • Service-side reload endpoint or admin action to reload the active DB-backed policy without restarting the process.
  • Dokploy-hosted execution wrapper that can run approved Launchplane maintenance commands inside the hosted compose network without exposing DB URLs locally.
  • Safe failure messages when the active policy is startup-cached and needs reload.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions