Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
7aea54d
feat(core): add user authentication middleware with DDD patterns
seanspeaks Oct 1, 2025
be656fe
refactor(core): implement new integration factory and routing archite…
seanspeaks Oct 1, 2025
a6973f5
refactor(core): replace factory pattern with DDD/hexagonal architecture
seanspeaks Oct 1, 2025
2d8eb36
feat(core): port Stack 2 business logic to DDD architecture
seanspeaks Oct 1, 2025
5fc7e9b
feat(management-ui): implement DDD/hexagonal architecture for server
seanspeaks Oct 1, 2025
8166bb7
feat(management-ui): implement DDD/hexagonal architecture for client
seanspeaks Oct 1, 2025
01a136c
test: migrate from Vitest to Jest and add comprehensive test suite
seanspeaks Oct 1, 2025
d5bc553
refactor(ui): implement DDD/hexagonal architecture in UI library
seanspeaks Oct 1, 2025
6d6c71e
feat(ui): add installation wizard and entity management UI
seanspeaks Oct 1, 2025
ea168ea
docs: add comprehensive CLI specifications and management-UI document…
seanspeaks Oct 1, 2025
7a332c7
refactor(cli): implement DDD/hexagonal architecture for frigg CLI
seanspeaks Oct 1, 2025
1428734
docs: add multi-step authentication and shared entities specification
seanspeaks Oct 1, 2025
b0f893f
docs: update stacking progress - all 9 stacks complete
seanspeaks Oct 1, 2025
b2a3476
Updating to fix management ui after merging in DDD updates
seanspeaks Oct 2, 2025
cee9754
fix: resolve merge conflicts from DDD refactor
seanspeaks Oct 2, 2025
81b20c4
docs: remove obsolete CLI specifications and backups
seanspeaks Oct 2, 2025
c030034
refactor(core): implement DDD repository pattern for users and modules
seanspeaks Oct 2, 2025
51aa0a5
refactor(management-ui): remove legacy backend and align with DDD arc…
seanspeaks Oct 2, 2025
e0d10f2
refactor(management-ui): reorganize frontend into presentation layer
seanspeaks Oct 2, 2025
8b4096c
chore: finalize DDD refactor cleanup and documentation
seanspeaks Oct 2, 2025
7f3dc11
fix(ui): export user action modal
seanspeaks Oct 2, 2025
02126bd
Delete packages/devtools/management-ui/src/presentation/components/co…
seanspeaks Oct 2, 2025
7358c90
Delete packages/devtools/management-ui/src/presentation/components/en…
seanspeaks Oct 2, 2025
ef749cd
Delete packages/devtools/management-ui/src/presentation/components/co…
seanspeaks Oct 2, 2025
c89d5c8
Delete packages/devtools/management-ui/src/presentation/components/in…
seanspeaks Oct 2, 2025
58eb2f1
Delete packages/devtools/management-ui/src/presentation/components/mo…
seanspeaks Oct 2, 2025
556d09a
Delete packages/devtools/management-ui/src/presentation/hooks/useInte…
seanspeaks Oct 2, 2025
75d50bc
WIP: Add IntegrationHub architecture to UI library
seanspeaks Oct 2, 2025
98c9e48
Add AuthModal for OAuth and form-based authentication flows
seanspeaks Oct 2, 2025
0723121
feat(core, ui): implement multi-step authentication with DDD/hexagona…
seanspeaks Oct 2, 2025
3b676fa
docs(api): design Frigg API v2 with RESTful authorization and entity …
seanspeaks Oct 2, 2025
6a1b922
feat: Add v2 module API and update UI integration
cursoragent Oct 4, 2025
21f37e4
Refactor integration builder and add install flow
cursoragent Oct 5, 2025
534f231
Refactor: Consolidate integration installation logic
cursoragent Oct 5, 2025
15a9f42
feat: Add comprehensive integration testing tools
cursoragent Oct 5, 2025
5f69830
feat: merge PR #453 - multi-step authentication and DDD architecture …
claude Nov 12, 2025
056115d
feat(schemas): add authorization API schemas and shared mock generators
claude Nov 12, 2025
ca83dbd
docs(management-ui): add comprehensive end-to-end flow gap analysis
claude Nov 13, 2025
d92d495
docs(management-ui): add system actions API design and implementation…
claude Nov 13, 2025
e26a2c9
fix: Make unit tests independent of MongoDB and fix CLI test import i…
claude Nov 12, 2025
0c59a7c
docs: add comprehensive testing guide from test suite branch
claude Nov 13, 2025
3dc1b42
fix(management-ui): add token injection and persistence for authentic…
claude Nov 13, 2025
bad2ed1
fix(management-ui): make WebSocket URL configurable
claude Nov 13, 2025
2f6abae
feat(ui): export testing components (SystemActionsTester, TestingDash…
claude Nov 13, 2025
0b3d511
docs(management-ui): add visual separation design proposal
claude Nov 13, 2025
1688f4f
chore: update package-lock.json after npm install
claude Nov 13, 2025
cd61e03
feat(schemas,management-ui): fix schema validation and implement visu…
claude Nov 13, 2025
1e78a31
docs(cli): add comprehensive CLI analysis report
claude Nov 13, 2025
8c7bb1e
fix(cli): fix Jest configuration and enable CLI tests
claude Nov 13, 2025
37c9c92
feat(cli): add unified Output class for consistent CLI UI
claude Nov 13, 2025
0be1dce
refactor(cli): migrate install-command to use unified Output class
claude Nov 13, 2025
ff43fcf
refactor(cli): migrate repair-command to use unified Output class
claude Nov 13, 2025
40b7684
refactor(cli): migrate doctor-command to use unified Output class
claude Nov 13, 2025
17b40a3
test(cli): add TDD coverage for output migration
claude Nov 13, 2025
defc8a3
Merge origin/next into branch - resolve conflicts
seanspeaks Nov 23, 2025
c7fa9d7
Merge remote-tracking branch 'origin/next' into feature/integration-r…
seanspeaks Nov 26, 2025
3d8ee58
feat(api): add v1/v2 API versioning with backwards compatibility
seanspeaks Dec 4, 2025
431487d
feat(ui): update API client to use v2 endpoints
seanspeaks Dec 4, 2025
5561c47
feat(ai-agents): add AI agent integration package with MCP tools
seanspeaks Dec 5, 2025
660dfc8
feat(cli): add frigg validate command with auto-detection
seanspeaks Dec 6, 2025
abe341d
Merge pull request #512 from friggframework/feat/frigg-validate-command
seanspeaks Dec 6, 2025
9bf37ff
Merge pull request #510 from friggframework/feature/ai-agent-integration
seanspeaks Dec 6, 2025
fbc2ee2
feat(api): add credential router, proxy use case, and API schemas
seanspeaks Dec 6, 2025
7abf297
Merge remote-tracking branch 'origin/feature/integration-router-v2-dr…
seanspeaks Dec 6, 2025
bbaf985
feat(docs): add v1/v2 API versioning with Scalar multi-spec support
seanspeaks Dec 6, 2025
cadf929
feat(admin-scripts): add implementation plan and package skeleton
claude Dec 10, 2025
aac4b92
docs(admin-scripts): update plan with accurate codebase patterns
claude Dec 10, 2025
33fb704
docs(admin-scripts): add execution modes, scheduling, and IaC deployment
claude Dec 10, 2025
d46f9a2
docs(admin-scripts): add dry-run mode and self-queuing patterns
claude Dec 10, 2025
b0f1e6f
docs(admin-scripts): use existing QueuerUtil for self-queuing
claude Dec 10, 2025
291e741
feat(admin-scripts): add repository implementations and command factory
claude Dec 10, 2025
4608a07
feat(admin-scripts): add application layer and infrastructure handlers
claude Dec 10, 2025
a0efe36
feat(admin-scripts): add built-in scripts for OAuth refresh and healt…
claude Dec 10, 2025
70d8419
fix(admin-scripts): prevent array mutation in appendExecutionLog
claude Dec 10, 2025
4808f5b
feat(admin-scripts): add hybrid scheduling and dry-run mode (Phase 2-3)
claude Dec 10, 2025
f0b3598
chore: remove plan file from version control
claude Dec 10, 2025
8fcce39
chore(admin-scripts): clean up TODOs and commented code
claude Dec 10, 2025
999dc52
feat(admin-scripts): wire EventBridge Scheduler into schedule endpoints
claude Dec 10, 2025
94b7d7d
refactor(admin-scripts): rename awsRule* to awsSchedule* for consistency
claude Dec 11, 2025
99a233c
docs(adr): add ADR-005 for Admin Script Runner service
claude Dec 11, 2025
e59ee63
fix(admin-scripts): add missing express and serverless-http dependencies
claude Dec 11, 2025
c943ee0
chore: update package-lock.json for admin-scripts dependencies
claude Dec 11, 2025
a45da73
fix(prisma): remove duplicate keyHash index from AdminApiKey
claude Dec 11, 2025
f21e709
fix(admin-scripts): use Number.parseInt and Number.isNaN per SonarCloud
claude Dec 11, 2025
06d705a
refactor(admin-scripts): reduce cognitive complexity for SonarCloud
claude Dec 11, 2025
c9b8c36
ci(release): configure npm trusted publishers with OIDC
claude Dec 11, 2025
41839c5
ci(release): use hybrid OIDC + token auth for npm publishing
claude Dec 11, 2025
6a2c076
Merge remote-tracking branch 'origin/next' into feature/integration-r…
seanspeaks Dec 12, 2025
53365a5
Merge admin-script-runner branch
seanspeaks Dec 14, 2025
e32db83
docs(adr): add architecture decisions for Router v2, Management UI, a…
seanspeaks Dec 14, 2025
8c6a058
feat(management-ui): add Frigg app connection, AI chat, and DDD refac…
seanspeaks Dec 15, 2025
08f5729
feat(management-ui): add auto-connect, resizable panels, and shared s…
seanspeaks Dec 15, 2025
9d9a77c
fix(management-ui): route user API through server proxy and read admi…
seanspeaks Dec 16, 2025
7aba112
Merge remote-tracking branch 'origin/next' into feature/integration-r…
seanspeaks Dec 16, 2025
34eb65e
chore: sync package-lock.json after merge from next
seanspeaks Dec 16, 2025
8e380c6
docs(adr): add ADR-009 for E2E test package architecture
seanspeaks Dec 16, 2025
3be6bc7
fix(management-ui): retry auto-connect when repositoryPath becomes av…
seanspeaks Dec 16, 2025
830b5ce
feat(frigg-cli): add PostgreSQL migration pre-flight check to frigg s…
seanspeaks Dec 16, 2025
cd98341
feat(management-ui): shared secret proxy and user simulation for loca…
seanspeaks Dec 16, 2025
ae55c7d
fix(core): accept display.name in Options class for integration defin…
seanspeaks Dec 16, 2025
f31d6d9
Revert "fix(core): accept display.name in Options class for integrati…
seanspeaks Dec 16, 2025
7af7828
fix(core): improve Options class robustness and add comprehensive tests
seanspeaks Dec 16, 2025
98b349f
fix(cli): fix inquirer prompts and deprecate create-frigg-app
seanspeaks Dec 19, 2025
0a0bf43
refactor(frigg-cli): consolidate validate command with @friggframewor…
seanspeaks Dec 19, 2025
67055f4
feat(frigg-cli): add API module definition validation to validate com…
seanspeaks Dec 20, 2025
5b728e9
feat(schemas): add managementMode, vpcIsolation, label to app-definit…
seanspeaks Dec 20, 2025
18a23d6
fix(frigg-cli): update ExampleIntegration template to use static Defi…
seanspeaks Dec 20, 2025
7e3b929
fix(frigg-cli): sanitize definitions before JSON Schema validation
seanspeaks Dec 20, 2025
98222cc
fix(frigg-cli): check moduleName instead of name in module validation
seanspeaks Dec 20, 2025
1548139
Add Integration Patterns Guide and update API Module docs
seanspeaks Dec 20, 2025
8d1d907
feat(management-ui): add OAuth credentials prompt for global entities
seanspeaks Dec 20, 2025
76ccca7
Export createProcessRepository from core for process tracking
seanspeaks Dec 20, 2025
cbd3d5a
chore: trigger canary release for PR #522
seanspeaks Dec 21, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .claude/skills/frigg/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ class QuoApi extends ApiKeyRequester {
### Project Setup

```bash
npx create-frigg-app my-integration
frigg init my-integration
cd my-integration
npm install
```
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ on:
- gitbook-updates
paths-ignore:
- docs/**
permissions:
contents: write
id-token: write

jobs:
release:
runs-on: ubuntu-latest
Expand All @@ -30,6 +34,7 @@ jobs:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}
run: |
npm install -g npm@latest
npm ci
cd packages/ui
npm run build
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ claude-flow.log
/packages/devtools/management-ui/dist
/packages/devtools/management-ui/.claude-flow
/.claude-flow
analysis-reports/
37 changes: 34 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This file provides guidance to Claude Code when working with the Frigg Framework

### Core Philosophy

Build enterprise-grade integrations as simply as `create-frigg-app`. Framework handles the infrastructure, developers focus on integration logic.
Build enterprise-grade integrations as simply as `frigg init`. Framework handles the infrastructure, developers focus on integration logic.

### Monorepo Structure

Expand Down Expand Up @@ -49,7 +49,7 @@ frigg/

```bash
# Create new Frigg app
npx create-frigg-app my-integration
frigg init my-integration

# Install API modules
frigg install hubspot
Expand Down Expand Up @@ -171,6 +171,37 @@ class MyIntegration extends IntegrationBase {
}
```

### Integration Patterns (Sync, Queues, Webhooks)

For complex integrations requiring sync orchestration, queue management, and webhook handling, see the **[Integration Patterns Guide](/docs/guides/INTEGRATION-PATTERNS.md)**.

Key patterns covered:

- **Process Model**: Track long-running operations with state management (`INITIALIZING` → `PROCESSING` → `COMPLETED`)
- **friggCommands**: Standardized interface for persisting integration config (`createFriggCommands()`)
- **QueueManager**: AWS SQS wrapper for async job processing with rate limiting and fan-out
- **Integration Events**: Define `USER_ACTION`, `CRON`, `QUEUE`, and `WEBHOOK` event handlers
- **SyncOrchestrator**: Coordinate sync operations across entity types

Quick example:

```javascript
const { createFriggCommands } = require('@friggframework/core');

class MyIntegration extends IntegrationBase {
constructor(params) {
super(params);
this.commands = createFriggCommands({ integrationClass: MyIntegration });

this.events = {
INITIAL_SYNC: { type: 'USER_ACTION', handler: this.startSync.bind(this) },
ONGOING_SYNC: { type: 'CRON', handler: this.deltaSync.bind(this) },
PROCESS_BATCH: { handler: this.processBatch.bind(this) }
};
}
}
```

### Encryption & Security

- **Field-Level Encryption**: Transparent database-agnostic encryption via Prisma Client Extensions
Expand Down Expand Up @@ -814,7 +845,7 @@ When working on the Frigg Framework, always prioritize finding the **best soluti

### Integration Development

1. Start with `create-frigg-app` for consistent structure
1. Start with `frigg init` for consistent structure
2. Use existing API modules when possible
3. Follow the IntegrationBase method contracts
4. Implement proper error handling and logging
Expand Down
Loading