Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
967c131
feat(admin-scripts): add implementation plan and package skeleton
claude Dec 10, 2025
71f0aae
docs(admin-scripts): update plan with accurate codebase patterns
claude Dec 10, 2025
3c590c3
docs(admin-scripts): add execution modes, scheduling, and IaC deployment
claude Dec 10, 2025
1d7beb5
docs(admin-scripts): add dry-run mode and self-queuing patterns
claude Dec 10, 2025
8d61f3f
docs(admin-scripts): use existing QueuerUtil for self-queuing
claude Dec 10, 2025
dcc9eef
feat(admin-scripts): add repository implementations and command factory
claude Dec 10, 2025
4e6f9a2
feat(admin-scripts): add application layer and infrastructure handlers
claude Dec 10, 2025
45fb9dd
feat(admin-scripts): add built-in scripts for OAuth refresh and healt…
claude Dec 10, 2025
c104963
fix(admin-scripts): prevent array mutation in appendExecutionLog
claude Dec 10, 2025
5d1f1ac
feat(admin-scripts): add hybrid scheduling and dry-run mode (Phase 2-3)
claude Dec 10, 2025
bb5ca37
chore: remove plan file from version control
claude Dec 10, 2025
8ead86b
chore(admin-scripts): clean up TODOs and commented code
claude Dec 10, 2025
8d2bbc3
feat(admin-scripts): wire EventBridge Scheduler into schedule endpoints
claude Dec 10, 2025
731ab5a
refactor(admin-scripts): rename awsRule* to awsSchedule* for consistency
claude Dec 11, 2025
5d4125b
docs(adr): add ADR-005 for Admin Script Runner service
claude Dec 11, 2025
010b7bd
fix(admin-scripts): add missing express and serverless-http dependencies
claude Dec 11, 2025
2656248
chore: update package-lock.json for admin-scripts dependencies
claude Dec 11, 2025
efa3a78
fix(prisma): remove duplicate keyHash index from AdminApiKey
claude Dec 11, 2025
20ae7de
fix(admin-scripts): use Number.parseInt and Number.isNaN per SonarCloud
claude Dec 11, 2025
4a558c9
refactor(admin-scripts): reduce cognitive complexity for SonarCloud
claude Dec 11, 2025
78063d7
ci(release): configure npm trusted publishers with OIDC
claude Dec 11, 2025
3b65a73
ci(release): use hybrid OIDC + token auth for npm publishing
claude Dec 11, 2025
9cb7d7d
refactor(admin): simplify auth and replace models per PR feedback
claude Dec 15, 2025
76b133c
refactor(admin): complete AdminProcess migration and consolidate unde…
claude Dec 15, 2025
c3db4b1
refactor(admin-scripts): simplify dry-run and clean up dependencies
claude Dec 15, 2025
1e53bcf
refactor(admin-scripts): address PR review feedback for Admin Script …
seanspeaks Dec 29, 2025
aeeef23
refactor(admin-scripts): address PR review - constructor injection, r…
seanspeaks Dec 30, 2025
7e78259
refactor(admin-scripts): address PR review - no defaults, fix bugs, c…
seanspeaks Feb 11, 2026
9066dd6
refactor(admin-scripts): extract dry-run to /validate route, simplify…
seanspeaks Feb 11, 2026
2239974
refactor(admin-scripts): slim down context, remove static helpers, ad…
seanspeaks Feb 12, 2026
179491e
fix(admin-scripts): address Cursor Bugbot findings - scheduler config…
seanspeaks Feb 16, 2026
916c55e
fix(admin-scripts): resolve PR #517 review comments - upsert, state t…
claude Feb 21, 2026
1687d70
Merge pull request #541 from friggframework/claude/review-pr-517-disc…
seanspeaks Feb 21, 2026
f725140
Merge claude/add-admin-script-runner branch to stack development on top
claude Feb 21, 2026
5d463a7
fix(admin-scripts): align commands with repository interface and wire…
claude Feb 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .claude/skills/frigg/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -1004,7 +1004,7 @@ Response (200): {
**Trigger Database Migration**

```bash
POST /db-migrate
POST /admin/db-migrate
x-frigg-admin-api-key: ${ADMIN_API_KEY}
Content-Type: application/json

Expand All @@ -1018,15 +1018,15 @@ Response (202): {
"success": true,
"processId": "mig-1642512000-abc123",
"state": "INITIALIZING",
"statusUrl": "/db-migrate/mig-1642512000-abc123",
"statusUrl": "/admin/db-migrate/mig-1642512000-abc123",
"message": "Migration job queued successfully"
}
```

**Check Migration Status**

```bash
GET /db-migrate/status?stage=production
GET /admin/db-migrate/status?stage=production
x-frigg-admin-api-key: ${ADMIN_API_KEY}

Response (200): {
Expand All @@ -1042,14 +1042,14 @@ Response (200): {
"pendingMigrations": 3,
"dbType": "postgresql",
"stage": "production",
"recommendation": "Run POST /db-migrate to apply pending migrations"
"recommendation": "Run POST /admin/db-migrate to apply pending migrations"
}
```

**Get Migration Details**

```bash
GET /db-migrate/${MIGRATION_ID}?stage=production
GET /admin/db-migrate/${MIGRATION_ID}?stage=production
x-frigg-admin-api-key: ${ADMIN_API_KEY}

Response (200): {
Expand Down
13 changes: 12 additions & 1 deletion docs/architecture-decisions/005-admin-script-runner.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,19 @@ class MyScript extends AdminScriptBase {
schedule: { enabled: true, cronExpression: 'cron(0 12 * * ? *)' },
};

/**
* @param {AdminFriggCommands} frigg - Helper object providing:
* - Repository access: listIntegrations(), findUserById(), findCredential(), etc.
* - Logging: log(level, message, data) - persists to execution record
* - Queue operations: queueScript(), queueScriptBatch() - for self-queuing pattern
* - Integration instantiation: instantiate(integrationId) - requires config.requireIntegrationInstance
* @param {Object} params - Script parameters (validated against inputSchema if provided)
* @returns {Promise<Object>} - Script results (validated against outputSchema if provided)
*/
async execute(frigg, params) {
// frigg provides: log(), getIntegrations(), getCredentials(), etc.
// Example usage:
// const integrations = await frigg.listIntegrations({ userId: params.userId });
// frigg.log('info', 'Processing integrations', { count: integrations.length });
return { success: true };
}
}
Expand Down
4 changes: 0 additions & 4 deletions docs/architecture-decisions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ An ADR documents a significant architectural decision made in the project, inclu
| [003](./003-runtime-state-only.md) | Runtime State Only for Management GUI | Accepted | 2025-01-25 |
| [004](./004-migration-tool-design.md) | Migration Tool Design | Proposed | 2025-01-25 |
| [005](./005-admin-script-runner.md) | Admin Script Runner Service | Accepted | 2025-12-10 |
| [006](./006-integration-router-v2.md) | Integration Router v2 Restructuring | Accepted | 2025-12-14 |
| [007](./007-management-ui-architecture.md) | Management UI Architecture | Accepted | 2025-12-14 |
| [008](./008-frigg-cli-start-command.md) | Frigg CLI Start Command | Accepted | 2025-12-14 |
| [009](./009-e2e-test-package.md) | E2E Test Package Architecture | Accepted | 2025-12-15 |

## ADR Template

Expand Down
Loading
Loading