Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
02b981f
Upgrade to latest node.js LTS
danielnaab Sep 3, 2025
966827d
Comment out the deploy step
danielnaab Sep 3, 2025
72d1522
Use @flexion package namespace.
danielnaab Sep 3, 2025
a26514b
Try to increase max-old-space-size to workaround Github CI memory issue.
danielnaab Sep 4, 2025
33529d5
Comment out unnecessary github actions
danielnaab Sep 4, 2025
9a66e48
Add public config for Github npm registry.
danielnaab Sep 9, 2025
0a171f1
Initial release of Flexion Forms
danielnaab Sep 9, 2025
a829d95
Merge pull request #2 from flexion/flexion-forms
danielnaab Sep 9, 2025
3747506
Uncomment changesets publish release
danielnaab Sep 9, 2025
d9bdac2
Merge pull request #3 from flexion/flexion-forms
danielnaab Sep 9, 2025
5281223
Remove tests from precommit hook for now
danielnaab Sep 9, 2025
59b5678
Merge pull request #4 from flexion/flexion-forms
danielnaab Sep 9, 2025
eab1595
Version Packages
github-actions[bot] Sep 9, 2025
c0ea108
Merge pull request #5 from flexion/changeset-release/main
danielnaab Sep 9, 2025
d1abc50
Point main attribute at dist instead of src
danielnaab Sep 10, 2025
a194e0a
Rev design package version
danielnaab Sep 10, 2025
b136dac
Add static files and sass source to built package.
danielnaab Sep 10, 2025
91add56
Rev versions
danielnaab Sep 10, 2025
d1fd0ed
Be more agressive about reloading the forms list
danielnaab Sep 15, 2025
f3bc441
Add changeset
danielnaab Sep 15, 2025
1eeb2f3
Update .changeset/modern-facts-watch.md
danielnaab Sep 15, 2025
53b4e8e
Merge pull request #6 from flexion/demo-tweaks
danielnaab Sep 15, 2025
82bb94d
Make form link optional (#8)
danielnaab Sep 15, 2025
c2f7549
Version Packages (#7)
github-actions[bot] Sep 15, 2025
4f3fd64
Add Claude Code GitHub Workflow (#9)
danielnaab Oct 3, 2025
9ee5bd1
Handle PDF parsing internally (#10)
danielnaab Oct 5, 2025
211143e
Add documentation strategy and fill out documentation with more proje…
danielnaab Oct 5, 2025
5ad2a72
Add Flexion Forms sandbox deployment (#12)
danielnaab Oct 6, 2025
9d79712
Generalize secrets prefix for Flexion sandbox (#13)
danielnaab Oct 6, 2025
992b1a1
Use DB_SECRET env var and deploy env IDs (#16)
danielnaab Oct 6, 2025
606cc15
Fix CI errors (#15)
danielnaab Oct 6, 2025
773a4bc
Database secret handling fix (#17)
danielnaab Oct 6, 2025
8472625
Fix issues with db secret handling to get Flexion sandbox deployment …
danielnaab Oct 6, 2025
e2ff6ef
Simplify networking (#19)
danielnaab Oct 7, 2025
d89ba08
Use @aws-sdk/credential-providers for smarter credential discovery th…
danielnaab Oct 7, 2025
91b0c5f
Fix node.js dependency issue in browser bundle
danielnaab Oct 7, 2025
1be4643
Add collaborators and demo users to allowlist (#21)
danielnaab Oct 7, 2025
19dc525
Add async processing of PDF imports and other general improvements (#22)
danielnaab Oct 9, 2025
99c05ca
Increase heap size in validation workflow and fix type errors (#23)
danielnaab Oct 10, 2025
06176d1
Use ?url imports on svgs to fix production build issue with rich text…
danielnaab Oct 10, 2025
1f4e775
Add submit (next page) simulation on form preview (#28)
danielnaab Oct 10, 2025
8e7e47d
Scope form sessions to form_id to avoid conflicts (#30)
danielnaab Oct 10, 2025
80ee713
Make spotlight session caching consistent with server (#31)
danielnaab Oct 10, 2025
ecd1088
Add GSA/TTS and CEQ email addresses to sandbox allowlist
danielnaab Mar 30, 2026
c54b909
Change project license from CC0 to Apache 2.0 (#32)
danielnaab Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 0 additions & 8 deletions .changeset/old-wolves-speak.md

This file was deleted.

26 changes: 13 additions & 13 deletions .github/workflows/_docker-build-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ env:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-2
ECR_REPOSITORY: tts-10x-forms-${{ inputs.deploy-key }}-image-${{ inputs.app-name }}
AWS_REGION: us-east-1
ECR_REPOSITORY: flexion-forms-sandbox-${{ inputs.deploy-key }}

jobs:
setup:
Expand Down Expand Up @@ -57,16 +57,16 @@ jobs:
run: |
docker push --all-tags ${REGISTRY_PATH}

# - name: Log in to AWS ECR
# run: |
# aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com
- name: Log in to AWS ECR
run: |
aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com

# - name: Tag Docker image for ECR
# run: |
# docker tag ${REGISTRY_PATH}:${COMMIT_SHA} ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:${COMMIT_SHA}
# docker tag ${REGISTRY_PATH}:${TAG_NAME} ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:${TAG_NAME}
- name: Tag Docker image for ECR
run: |
docker tag ${REGISTRY_PATH}:${COMMIT_SHA} ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:${COMMIT_SHA}
docker tag ${REGISTRY_PATH}:${COMMIT_SHA} ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:latest

# - name: Push Docker image to ECR
# run: |
# docker push ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:${COMMIT_SHA}
# docker push ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:${TAG_NAME}
- name: Push Docker image to ECR
run: |
docker push ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:${COMMIT_SHA}
docker push ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${ECR_REPOSITORY}:latest
4 changes: 2 additions & 2 deletions .github/workflows/_terraform-apply.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ jobs:

- name: Generate Terraform CDK provider constructs
shell: bash
run: pnpm --filter @gsa-tts/forms-infra-cdktf build:get
run: pnpm --filter @flexion/forms-infra-cdktf build:get

- name: Initialize Terraform CDK configuration
shell: bash
run: pnpm turbo run --filter @gsa-tts/forms-infra-cdktf build
run: pnpm turbo run --filter @flexion/forms-infra-cdktf build

- name: Install CloudFoundry CLI
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/_terraform-plan-pr-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ jobs:

- name: Generate Terraform CDK provider constructs
shell: bash
run: pnpm --filter @gsa-tts/forms-infra-cdktf build:get
run: pnpm --filter @flexion/forms-infra-cdktf build:get

- name: Build Terraform configuration
shell: bash
run: pnpm turbo run --filter @gsa-tts/forms-infra-cdktf build
run: NODE_OPTIONS=--max-old-space-size=6144 pnpm turbo run --filter @flexion/forms-infra-cdktf build

- name: Get Terraform stack name
id: get_stack_name
Expand Down
30 changes: 16 additions & 14 deletions .github/workflows/_validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,26 +62,26 @@ jobs:
if: steps.playwright-cache.outputs.cache-hit != 'true'

# While most of the test suite is self-contained, the tests for the demo
# servers require a prod build of @atj/server.
# servers require a prod build of @flexion/forms-server.
- name: Build
run: pnpm build

- name: Make directory for build artifacts
run: mkdir -p output/build-artifacts
# - name: Make directory for build artifacts
# run: mkdir -p output/build-artifacts

- name: Spotlight app performance budget
run: pnpm --filter @atj/spotlight size:ci > output/build-artifacts/spotlight-size-output.txt
# - name: Spotlight app performance budget
# run: pnpm --filter @flexion/forms-spotlight size:ci > output/build-artifacts/spotlight-size-output.txt

- name: Design package performance budget
run: pnpm --filter @atj/design size:ci > output/build-artifacts/design-size-output.txt
# - name: Design package performance budget
# run: pnpm --filter @flexion/forms-design size:ci > output/build-artifacts/design-size-output.txt

- name: Upload size:ci results
uses: actions/upload-artifact@v4
with:
name: size-limit-results
path: |
output/build-artifacts/spotlight-size-output.txt
output/build-artifacts/design-size-output.txt
# - name: Upload size:ci results
# uses: actions/upload-artifact@v4
# with:
# name: size-limit-results
# path: |
# output/build-artifacts/spotlight-size-output.txt
# output/build-artifacts/design-size-output.txt

- name: Lint source code
shell: bash
Expand All @@ -99,6 +99,8 @@ jobs:
- name: Initialize Terraform CDK configuration
shell: bash
working-directory: infra/cdktf
env:
NODE_OPTIONS: --max-old-space-size=4096
run: |
pnpm cdktf get
pnpm build:tsc
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/add-terraform-plan-to-pr.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
name: Post Terraform plan to PR comment

on:
pull_request:
branches:
- demo
- main
types:
- opened
- synchronize
- reopened
workflow_dispatch:
# pull_request:
# branches:
# - demo
# - main
# types:
# - opened
# - synchronize
# - reopened

jobs:
add-terraform-plan-to-demo-pr:
Expand Down
56 changes: 56 additions & 0 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Claude Code Review

on:
pull_request:
types: [opened, synchronize]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"

jobs:
claude-review:
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'

runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
prompt: |
REPO: ${{ github.repository }}
PR NUMBER: ${{ github.event.pull_request.number }}

Please review this pull request and provide feedback on:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security concerns
- Test coverage

Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.

Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.

# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.claude.com/en/docs/claude-code/sdk#command-line for available options
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
50 changes: 50 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Claude Code

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read

# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'

# Optional: Add claude_args to customize behavior and configuration
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.claude.com/en/docs/claude-code/sdk#command-line for available options
# claude_args: '--model claude-opus-4-1-20250805 --allowed-tools Bash(gh pr:*)'

42 changes: 34 additions & 8 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
name: 'Deploy'

# Triggers on pushes to main or demo branches
# Builds Docker image and pushes to:
# - GitHub Container Registry (ghcr.io)
# - AWS ECR (requires ECR repositories to exist first)
#
# PREREQUISITES:
# 1. Deploy infrastructure first to create ECR repositories:
# cd infra/cdktf
# pnpm deploy:flexion-sandbox-main # for main branch
# pnpm deploy:flexion-sandbox-demo # for demo branch
#
# 2. Configure GitHub secrets:
# - AWS_ACCOUNT_ID
# - AWS_ACCESS_KEY_ID
# - AWS_SECRET_ACCESS_KEY
#
# DEPLOYMENT FLOW:
# - Push to main branch → builds image → pushes to flexion-forms-sandbox-main ECR
# - Push to demo branch → builds image → pushes to flexion-forms-sandbox-demo ECR
# - App Runner auto-deploys when new images are detected (autoDeploymentsEnabled: true)

on:
push:
branches:
Expand All @@ -8,18 +29,23 @@ on:
workflow_dispatch:

jobs:
build-image:
build-and-push-image:
uses: ./.github/workflows/_docker-build-image.yml
secrets: inherit
with:
app-name: sandbox
tag-name: ${{ github.ref_name }}
deploy-key: ${{ github.ref_name }}

deploy:
needs: [build-image]
uses: ./.github/workflows/_terraform-apply.yml
secrets: inherit
with:
deploy-env: ${{ github.ref_name }}
#deploy-env: main
# Terraform deployment is handled separately/manually for now
# To deploy infrastructure changes:
# cd infra/cdktf
# DEPLOY_ENV=flexion-sandbox-main pnpm deploy # or flexion-sandbox-demo
#
# Future: Automate Terraform deployment for AWS
# deploy-infrastructure:
# needs: [build-and-push-image]
# uses: ./.github/workflows/_terraform-apply.yml
# secrets: inherit
# with:
# deploy-env: aws-${{ github.ref_name }}
17 changes: 1 addition & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ on:
push:
branches:
- main
inputs:
playwright-version:
description: "Set the Playwright version"
default: "1.51.1"

concurrency: ${{ github.workflow }}-${{ github.ref }}

Expand All @@ -33,17 +29,6 @@ jobs:
- name: Install dependencies
run: pnpm install

- name: Cache Playwright binaries
uses: actions/cache@v4
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ inputs.playwright_version }}

- name: Install Playwright
run: pnpm dlx playwright@${{ inputs.playwright_version }} install --with-deps
if: steps.playwright-cache.outputs.cache-hit != 'true'

- name: Build packages
run: pnpm run build

Expand All @@ -54,4 +39,4 @@ jobs:
publish: pnpm release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
#NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
6 changes: 3 additions & 3 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ on:
jobs:
run-tests:
uses: ./.github/workflows/_validate.yml
e2e:
uses: ./.github/workflows/_end-to-end.yml
secrets: inherit
# e2e:
# uses: ./.github/workflows/_end-to-end.yml
# secrets: inherit
3 changes: 2 additions & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/bin/sh
pnpm lint
pnpm format
pnpm test:ci
echo "*** NOTE: Running tests is temporarily disabled ***"
#pnpm test:ci
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v22.14.0
v22.19.0
Loading
Loading