Skip to content

docs(adr): ADR-063 integration definitions as data - #692

Open
seanspeaks wants to merge 4 commits into
nextfrom
claude/shared-conversation-8hgmbr-stack-1-adr-063
Open

seanspeaks wants to merge 4 commits into
nextfrom
claude/shared-conversation-8hgmbr-stack-1-adr-063

Conversation

@seanspeaks

@seanspeaks seanspeaks commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Stack 1 of 9: ADR-063, integrations as definitions. Each PR targets the one before it. Review and merge them in order.

Summary

  • Adds ADR-063, which describes an integration written as a JSON definition instead of a class.
    • A definition is built from modules, capabilities, workflows, syncs, UI surfaces, a settings form and lifecycle steps.
    • It is checked against capability manifests that describe what each API module can do.
    • It is published as an immutable, versioned record.
    • It is installed and run by Frigg's normal entry points. There is no second runtime.
  • Status at this commit is proposed. PR 5 marks it accepted and updates the route table once the runtime matches it.
  • Docs only. No code.

Test plan

  • Docs only

Generated by Claude Code


Note

Low Risk
Documentation-only proposed ADR and cross-reference updates; no production code, auth, or data paths change in this PR.

Overview
Introduces proposed ADR-063, which adds a second integration authoring form: a versioned integration document (JSON) interpreted by a generic DataDefinedIntegration, alongside unchanged class-based integrations.

The ADR spells out what stays data vs. registered code (allow-list for modules, step types, transforms), a git-style lifecycle (author → frigg integration check → immutable publish → pinned definitionVersion), shared HTTP/webhook/queue infrastructure to avoid per-integration CloudFormation growth, and follow-on topics (runtime portability, tenancy via ADR-056).

ADR-023 gains an Amendment (ADR-063) so templates may ship as forkable definition documents, not only copied class scaffolds. The ADR README index lists ADR-063.

Docs only; no runtime or schema implementation in this PR.

Reviewed by Cursor Bugbot for commit 21d9e3b. Bugbot is set up for automated code reviews on this repo. Configure here.

Explores data-defined integrations interpreted by a generic
DataDefinedIntegration, with allow-listed step types and transforms,
git-authored definitions published as immutable versions, constant
infrastructure, and what this opens up for runtime portability
(packaged vs serverless, edge, home hardware, Rust/Wasm).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NGC9SnFuqdjX2xH2qeu8vw

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization has no extra usage available to pay for this review.

If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.

Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.

@netlify

netlify Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for friggframework-org canceled.

Name Link
🔨 Latest commit 21d9e3b
🔍 Latest deploy log https://app.netlify.com/projects/friggframework-org/deploys/6ad68ea331f134d520090bd4

@seanspeaks

Copy link
Copy Markdown
Contributor Author

ADR reconciliation needed after Stack A/B — drafted with Claude Code at Sean's request

Severity: must-reconcile. ADR-063 is the ADR the rest of Stack B extends; these are text edits (code items are on #693–#698).

Merge order: #669 and #670 settle their texts → this PR → #693+.

…names; ADR-023 amendment

- Terms section: the three meanings of "Definition", and the planned
  integration-document name and schema $id.
- Mappings and transforms: one named vocabulary with ADR-057 is the goal.
- ADR-056: workspace ownership, visibility and binding scope as follow-up.
- Remove the ADR-062 citation; point at ADR-059 open question 1.
- Queue row: PR #686 adds QueueClientInterface (ADR-028).
- Name no hosted product in Context or prose.
- ADR-023: Amendment (ADR-063), a template may ship as a document.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NGC9SnFuqdjX2xH2qeu8vw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NGC9SnFuqdjX2xH2qeu8vw
@sonarqubecloud

Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor Author

Release review follow-up: the text items are done across the stack (this PR at 21d9e3bc).

Open question: ADR-028 has three files on different branches. This cites the multi-provider one (docs/adr-register-reconciliation). Please confirm that is the intended 028.


Generated by Claude Code

@seanspeaks

Copy link
Copy Markdown
Contributor Author

Schema URL convention: please change the $schema example in ADR-063 (around line 86) from

https://schemas.friggframework.org/integration-document/v0.1.json

to

https://friggframework.org/schemas/integration-document/v0.1.json

The "Hosted schemas" amendment to ADR-051 (on #666, commit 923c975) settles on one pattern for every Frigg schema: https://friggframework.org/schemas/<name>/v<major>.<minor>.json. The $id is that exact URL, and friggframework.org serves the file there. #705 implements it for @friggframework/schemas. schemas.friggframework.org isn't used.

Related, for the stack's schema files: the declarative document currently has the $id .../schemas/integration-definition/v0.1.json. @friggframework/schemas already ships an integration-definition schema (the class Definition, now integration-definition/v1.0). The amendment gives each name to one document family only, so the declarative document should use integration-document, the name this ADR already plans. capability-manifest/v0.1 and installation/v0.1 already follow the pattern.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

prerelease This change is available in a prerelease. release Create a release when this pr is merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants