Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 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
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
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
57 changes: 57 additions & 0 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
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:aws-main # for main branch
# pnpm deploy:aws-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=aws-main pnpm deploy # or aws-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 }}
6 changes: 1 addition & 5 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 Down Expand Up @@ -54,4 +50,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
24 changes: 23 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
# Repository Guidelines

This guide helps contributors work effectively in the 10x Forms Platform monorepo.
This guide helps AI agents and contributors work effectively in the Forms Platform monorepo.

## Documentation Index

For comprehensive documentation, see [DOCS.md](./DOCS.md).

**Quick links:**
- [Quick Reference](./documents/quick-reference.md) - Common commands and workflows
- [Patterns and Conventions](./documents/patterns-and-conventions.md) - Coding standards
- [Architecture Overview](./documents/architecture.md) - System design
- [Terminology](./documents/terminology.md) - Domain language
- [ADRs](./documents/adr/) - Architectural decisions

## Project Structure & Module Organization

Expand Down Expand Up @@ -42,6 +53,17 @@ Tip: Tests that hit the database require Docker or Podman. Install Playwright br
- Commits: follow Conventional Commits (e.g., `feat:`, `fix:`, `refactor:`). Include scope and ticket/issue (`TCKT-123`, `#123`) when relevant.
- PRs: clear description, linked issues, screenshots for UI, tests updated, docs updated, and passing CI. One logical change per PR.

## Documentation Maintenance

When making code changes, update relevant documentation in the same PR:
- Update package READMEs when public APIs change
- Create ADR for significant architectural decisions (use next number in sequence)
- Update [DOCS.md](./DOCS.md) when adding new documentation files
- Keep [Quick Reference](./documents/quick-reference.md) current with command changes
- Update [Patterns and Conventions](./documents/patterns-and-conventions.md) for new patterns

See [ADR 0018: Documentation Strategy](./documents/adr/0018-documentation-strategy.md) for complete guidelines.

## Security & Configuration Tips

- Never commit secrets. Use `.env` files (see examples like `e2e/.env.sample`).
Expand Down
Loading
Loading