Skip to content

feat(secrets): pick a team's secrets - #2942

Merged
camielvs merged 2 commits into
cvs/tangent-secrets-windowfrom
cvs/pick-team-secrets
Oct 31, 2026
Merged

camielvs merged 2 commits into
cvs/tangent-secrets-windowfrom
cvs/pick-team-secrets

Conversation

@camielvs

@camielvs camielvs commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Description

In a team's project, the secret picker now offers the team's secrets alongside your own, so a secret picked for an argument is one the run can reach at launch, whoever it's submitted as.

  • From a task argument in either editor, the picker uses the page's team (useActingTeam): the Tangent project of the embedded editor, or ?projectId= in the standalone one. It resolves only while open, so an editor with many argument rows doesn't look up the team for each.
  • From the submit dialog, it uses the team of the projects that run will be filed under, which the dialog now receives from its caller. TangleSubmitter gets it from the chosen project plus the page's scope. RunPipelineButton gets it from the project it runs in. Both use the new useTeamForSubmission, and useActingTeam is now that hook applied to the page's linked project.
  • Your secrets and the team's are listed apart, under "Your secrets" and "The {workspace} workspace's secrets", the second with the workspace icon.
  • "Add Secret" saves to your own secrets by default. When you can write to the team, a Save to choice can put the new secret in the team's instead. So a pipeline built in the standalone editor for a team's project can get a team secret, and use it, without going through Tangent.
  • When the project has a team you can't act as, the picker says why and offers your own secrets, which are what the run will use. For projects on different teams, it offers nothing. ActingTeamNotice holds that copy so the submit dialog (feat(runs): submit as yourself or as the project's team #2943) can say the same thing. It names the workspace with its icon, so InfoBox titles now accept rich content.

Related Issue and Pull requests

Type of Change

  • New feature

Line Breakdown

Category Added Removed
Production code 303 25
Tests 406 41
Total 709 66

Checklist

  • I have tested this does not break current pipelines / runs functionality
  • I have tested the changes on staging

Screenshots (if applicable)

None yet.

Test Instructions

pnpm vitest run src/components/shared/SecretsManagement src/components/shared/Teams src/components/Project src/services/teams

With the same setup as #2941:

  1. Edit a pipeline in a team's Tangent project and set a task argument to a secret. The picker lists your secrets and, under the team's name, the team's.
  2. Do the same in the standalone editor, opened from that project (?projectId=). The result is the same.
  3. Open the picker from "Submit run with arguments". Pick a project on another team in the dialog's project field, and the picker follows that project's team.
  4. Add a secret from the picker in the standalone editor, with "Runs go to" set to a team's project. "Save to" offers "Your secrets" and "The {workspace} workspace's secrets". Choose the team's, and the new secret is listed under the team's name. With a role that can't write to the team, there's no choice, and it saves to yours.

Additional Comments

None.

🤖 Generated with Claude Code

@camielvs
camielvs added this pull request to stack #2930 October 22, 2026 22:34
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

🎩 Preview

A preview build has been created at: cvs/pick-team-secrets/cefb7df

@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from 29a21da to a49ef1e Compare October 23, 2026 22:58
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from a49ef1e to b0456a0 Compare October 23, 2026 23:50
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch 2 times, most recently from a9c9dc5 to d302051 Compare October 27, 2026 00:59
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from d302051 to 7667ffa Compare October 27, 2026 17:33
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch 2 times, most recently from d8b730c to 1e3fcb5 Compare October 28, 2026 23:11
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch 2 times, most recently from b500b7f to 5fc6a20 Compare October 29, 2026 02:42
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from 5fc6a20 to 0fbc39d Compare October 29, 2026 19:45
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch 2 times, most recently from 3fe8c5e to 3a81b79 Compare October 29, 2026 20:42
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from 3a81b79 to 3d68cb2 Compare October 29, 2026 23:33
Comment thread src/services/teams/useActingTeam.ts Resolved
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch 2 times, most recently from 0064b22 to dfb1d9a Compare October 30, 2026 18:51
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from dfb1d9a to 0477f0b Compare October 30, 2026 20:35
@camielvs
camielvs marked this pull request as ready for review October 30, 2026 21:23
@camielvs
camielvs requested a review from a team as a code owner October 30, 2026 21:23
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from 0477f0b to c8b9fee Compare October 30, 2026 21:46
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from c8b9fee to ad2c18b Compare October 30, 2026 23:50
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from ad2c18b to c4eef6c Compare October 31, 2026 00:08
In a team's project, the secret picker now offers the team's secrets
alongside your own, so a secret picked for an argument is one the run
can reach at launch, whoever it's submitted as.

- Opened from a task argument in either editor, the picker uses the
  page's team (`useActingTeam`): the Tangent project of the embedded
  editor, or `?projectId=` in the standalone one. It resolves only
  while open, so an editor with many argument rows doesn't look up the
  team for each.
- Opened from the submit dialog, it uses the team of the projects that
  run will be filed under, which the dialog now receives from its
  caller. `TangleSubmitter` gets it from the chosen project plus the
  page's scope, and `RunPipelineButton` from the project it runs in,
  both through the new `useTeamForSubmission`. `useActingTeam` is now
  that hook applied to the page's linked project.
- Your secrets and the team's are listed apart, each under its own
  heading. "Add Secret" saves to your own by default. When you can
  write to the team, a "Save to" choice can put the new secret in the
  team's instead, so a pipeline built in the editor for a team's
  project can get a team secret without going through Tangent.
- When the project has a team you can't act as, the picker says why and
  offers your own secrets, which are what the run will use. For
  projects on different teams it offers nothing. `ActingTeamNotice`
  holds that copy so the submit dialog can say the same thing later. It
  names the workspace with its icon, so `InfoBox` titles now accept rich
  content.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The picker's "The {workspace} workspace's secrets" heading now writes
the workspace's name with its icon inline, like the Secrets window.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@camielvs
camielvs force-pushed the cvs/pick-team-secrets branch from c4eef6c to cefb7df Compare October 31, 2026 00:12
@camielvs
camielvs merged commit 4c6b835 into master Oct 31, 2026
18 checks passed
@camielvs
camielvs deleted the cvs/pick-team-secrets branch October 31, 2026 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants