Skip to content

fix(ci): load prod deploy secrets from Infisical over GitHub OIDC - #355

Merged
Makisuo merged 3 commits into
mainfrom
fix/deploy-prd-infisical-oidc
Oct 30, 2026
Merged

Makisuo merged 3 commits into
mainfrom
fix/deploy-prd-infisical-oidc

Conversation

@Makisuo

@Makisuo Makisuo commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Every Deploy PRD run after CI on main failed in ~40s with SchemaError(Expected string at ["S3_BUCKET"]): the GitHub production environment has no secrets or vars, and prod secrets only live in Infisical (which is why only alchemy:deploy:prd:local has worked).

  • The deploy job gets id-token: write and a first step, Infisical/secrets-action with method: oidc, that exports Infisical's prod env.
  • Drops the job-level secret list: env: entries in the YAML shadow what the action writes to GITHUB_ENV, so they would have stayed empty.

Setup (done): Infisical identity hazel-gh-production with OIDC auth bound to repo:MapleTechLabs/hazel:environment:production (audience https://github.com/MapleTechLabs), viewer on the Hazel project (custom prod-only roles need Enterprise); its ID is the INFISICAL_IDENTITY_ID variable on the production environment.

PR previews have the same empty-env problem in pr-preview; not changed here.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Makisuo and others added 2 commits October 31, 2026 00:48
…adder

The font stack named var(--font-inter), which nothing defines since the
React app went, so the app rendered in the system font. It names Inter
now, and 500 and 600 load beside 400.

A first pass of rules taken from Shinsa's design system:
- Tokens: fg-1..4 text ladder mixed from --fg (every gray palette gets
  its own), alpha washes, a field fill, a control highlight, faux-medium.
- Sidebar: rows at rest are quieter and normal weight; hover is a wash;
  the current row a stronger wash plus faux-medium, so hover and current
  no longer look the same; unread rows step up to full ink.
- Fields are filled, not bordered (input, textarea, select, date field).
- Buttons: secondary is a fill only; primary and danger get a highlight
  edge instead of a border. Menus highlight with the wash.
- Card: no drop shadow, a 16px medium title. Borders one step lighter.

`bun run gallery` renders the kit's real views in Chromium and
screenshots them in light and dark, for before and after comparisons.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The production GitHub environment has no secrets, so every auto-deploy
after CI on main failed planning the stack (S3_BUCKET: Expected string).
Prod secrets live in Infisical; the deploy job now signs in with its
GitHub OIDC token (identity bound to this repo's production environment)
and exports Infisical's prod env, the same source alchemy:deploy:prd:local uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…s bound to

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Makisuo
Makisuo merged commit b46cdc0 into main Oct 30, 2026
5 of 6 checks passed
@Makisuo
Makisuo deleted the fix/deploy-prd-infisical-oidc branch October 30, 2026 23:51
@maple-review-bot

maple-review-bot Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 9/10 · safe to merge. No defects found; the open risk is whether Infisical prod holds the exact key names the deploy reads.
no findings · tests not needed · risk high −1

The prod deploy now takes every secret from Infisical over GitHub OIDC instead of the empty production environment, and the same PR reworks the web kit's type, surfaces and sidebar states and adds a screenshot gallery. Nothing in it is unsafe to merge.

  • deploy-prd.yml exports Infisical prod over OIDC with id-token: write
  • Job-level secret list dropped so the action's GITHUB_ENV values survive
  • New fg-1..4, wash, field, shadow-control tokens replace accent and input borders
  • design.gallery.ts screenshots the kit in light and dark

Before merge

  • Env var · Set VITE_GALLERY_LABEL in every environment, or confirm its default · apps/web-foldkit/src/design.gallery.ts:215
  • Env var · Add INFISICAL_IDENTITY_ID to the production environment variables · .github/workflows/deploy-prd.yml:52
  • Manual · Confirm Infisical prod carries every key the deploy reads (S3_BUCKET, GITHUB_APP_ID, MAPLE_API_KEY); nothing in the diff checks the names

0944356 · What was checked, coverage and telemetry details are on the Maple / review check. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@maple-review-bot

Copy link
Copy Markdown

Merged with 3 steps from "Before merge" still open. If they are done, tick them on the review comment; if not, now is the time.

  • Env var · Add INFISICAL_IDENTITY_ID to the production environment variables
  • Env var · Set VITE_GALLERY_LABEL in every environment, or confirm its default
  • Manual · Confirm Infisical prod carries every key the deploy reads (S3_BUCKET, GITHUB_APP_ID, MAPLE_API_KEY); nothing in the diff checks the names

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 69.24% 20288 / 29298
🔵 Statements 68.73% 23018 / 33488
🔵 Functions 59.11% 8094 / 13693
🔵 Branches 56.44% 9449 / 16739
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
apps/web-foldkit/src/core/components/ui/button.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/components/ui/card.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/components/ui/date-field.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/components/ui/dropdown.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/components/ui/input.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/components/ui/menu.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/components/ui/select.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/components/ui/textarea.styles.ts 100% 100% 100% 100%
apps/web-foldkit/src/core/lib/theme/apply.ts 5.88% 0% 0% 6.97% 61-179
apps/web-foldkit/src/shell/channels-sidebar/items.ts 36.73% 0% 5% 44.73% 28-29, 55-63, 66, 69-70, 73-107, 118-131, 139-150, 154-155, 159-162, 166-175, 178-196, 204-228, 232-252, 255-273, 291-304
apps/web-foldkit/src/shell/channels-sidebar/tree.ts 81.81% 31.25% 60% 93.75% 19-21, 25-38, 163-198, 206-225
apps/web-foldkit/src/ui/sidebar.ts 100% 84.61% 100% 100%
Generated in workflow #1878 for commit 0944356 by the Vitest Coverage Report Action

This branch was previously deployed

1 inactive deployment
production — 09443566 Deployed Oct 30, 2026 by Makisuo via deploy #56
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.

1 participant