Remove the workflow "public" feature entirely. Access to workflow runs,
their evidence and CAS artifacts is now organization-scoped only
(honoring project RBAC); the public evidence surfaces are retired.
- Stop reading and writing the workflows.public column and drop the
Workflow.Public domain field. The column is deprecated in place (not
dropped) so pods still running the previous image keep working during
rollout; a follow-up migration will drop the column later
- Replace the public-aware lookups with organization-strict ones
(add GetByDigestInOrg); WorkflowRunService.View always enforces RBAC
- Remove the CAS-mapping public download fallback
- Retire the public shared referrer index (DiscoverPublicShared RPC,
ReferrerSharedIndex config, InPublicWorkflow visibility), including its
Helm chart values and control-plane config
- Remove the CLI --public flags and the workflow list Public column
- Delete/reserve the corresponding proto fields; WorkflowItem.public is
kept as a deprecated, always-false field for wire compatibility
Signed-off-by: Matías Insaurralde <matias@chainloop.dev>
Summary
Removes the workflow
publicfeature from Chainloop. Public workflows previously made a workflow's runs, attestations, materials and CAS artifacts readable by any authenticated user across organizations. With this change, access to that evidence is organization-scoped only and honors project RBAC.What changes
publicattribute is removed from workflows, including theworkflows.publicdatabase column.WorkflowRunService.Viewalways applies project RBAC.DiscoverPublicSharedAPI and its configuration.--publicflags (workflow create,workflow update,referrer discover) and thePubliccolumn inworkflow listare removed.WorkflowItem.publicis kept as a deprecated, always-false field for wire compatibility.publiccolumn.Notes
This is an API and behavior change: existing public workflows become organization-only, the
DiscoverPublicSharedendpoint is removed, and the CLI--publicflags no longer exist.