Acquia Source Integration - Development Guide
Acquia Source Integration - Development Guide
Purpose: Complete guide for building Acquia Source products Audience: Agents working on Tier 1-3 products Strategic Value: $6.2M ARR Year 1, $155-310M Acquisition Target
šÆ Overview
The Opportunity
Acquia Source is Acquia's new headless CMS (launched 2025). We have:
- First-mover advantage: Just launched, minimal competition
- Personal connections: 23 years Drupal experience, 10 years Acquia, daughter works at Acquia
- Platform ready: compliance-engine, agent-mesh, 54 agents deployed
- GitLab employment: Co-marketing opportunity
The Strategy
3-Tier Product Approach:
- Tier 1 ($642k ARR): Foundation products (Compliance Shield, DevOps Accelerator, AI Agents)
- Tier 2 ($2.5M ARR): Advanced products (API Gateway, Multi-Tenant, DAM Intelligence)
- Tier 3 ($3.1M ARR): Strategic assets (Edge Network, Marketplace, Intelligence Platform)
Exit Strategy: Build to $155-310M acquisition value (or profitable standalone business)
š Repository Structure
api-schema-registry
Location: /Users/flux423/Library/Mobile Documents/com~apple~CloudDocs/AgentPlatform/_REPOSITORIES/api-schema-registry
Acquia Source Files:
api-schema-registry/
āāā openapi/acquia-cms/
ā āāā openapi-converted.yaml # 141 endpoints, 409 operations
ā āāā schemas/
ā āāā common.yaml # 8 JSON:API schemas
āāā src/
ā āāā generated/acquia-cms/
ā ā āāā types.ts # Auto-generated types (1.6MB)
ā āāā types/
ā āāā acquia-cms.ts # Organized exports
āāā scripts/
āāā finalize-spec.ts # HTML cleanup, response codes
āāā fix-validation-errors.ts # Duplicate consolidation
ā ļø WARNING: As of 2026-02-06, these files MAY NOT EXIST (audit found empty directories)
api_normalization
Location: /Users/flux423/Library/Mobile Documents/com~apple~CloudDocs/AgentPlatform/_REPOSITORIES/api_normalization
Acquia Source Files:
api_normalization/
āāā examples/
ā āāā acquia_source_jsonapi.json # Original JSON:API spec
āāā openapi.yml # Module's own OpenAPI spec
š Phase 1: OpenAPI Spec Conversion (Week 1-2)
Status Check
BEFORE starting Phase 2+, verify Phase 1 is deployed:
# Check MR status glab mr view 33 --repo blueflyio/agent-platform/api-schema-registry # Check if files exist cd "/Users/flux423/Library/Mobile Documents/com~apple~CloudDocs/AgentPlatform/_REPOSITORIES/api-schema-registry" ls -la openapi/acquia-cms/ # Check worktree (if not merged) find ~/.worktrees -name "*acquia*" -o -name "*77*" # If files missing, check git history git log --all --oneline --grep="acquia" -i
If Phase 1 NOT Deployed
Option A: Merge existing MR #33
# Check MR details glab mr view 33 --repo blueflyio/agent-platform/api-schema-registry # If approved, merge glab mr merge 33 --repo blueflyio/agent-platform/api-schema-registry # Pull latest cd "/Users/flux423/Library/Mobile Documents/com~apple~CloudDocs/AgentPlatform/_REPOSITORIES/api-schema-registry" git pull origin release/v0.1.x
Option B: Recreate work from original spec
# Source: api_normalization/examples/acquia_source_jsonapi.json # Follow tasks 3-7 from COMPLETED-ACQUIA-SOURCE.md: # 1. Clean HTML descriptions to Markdown (use turndown library) # 2. Add missing response codes (201, 204, 400, 401, 403, 404, 422, 500) # 3. Extract common JSON:API schemas # 4. Generate types with openapi-typescript # 5. Fix duplicate paths and parameter mismatches
š”ļø Product 1.1: Source Compliance Shield (Week 3-4)
Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Client Request ā
ā (e.g., GET /api/node/article?include=category) ā
āāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
v
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā compliance-engine ā
ā ⢠Load Cedar policies ā
ā ⢠Evaluate request against policies ā
ā ⢠Allow/Deny based on rules ā
āāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā (if allowed)
v
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Acquia Source API ā
ā ⢠Process request ā
ā ⢠Return JSON:API response ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Implementation Steps
-
Design Cedar Policies
// Example: Content Type Restrictions permit( principal in Group::"content-editors", action == Action::"read", resource in ContentType::"article" ); forbid( principal in Group::"anonymous", action == Action::"write", resource ); -
Configure compliance-engine
// compliance-engine/src/acquia-source-config.ts import { ComplianceEngine } from '@bluefly/compliance-engine'; const engine = new ComplianceEngine({ policies: './policies/acquia-source.cedar', openapi: './openapi/acquia-cms/openapi-converted.yaml', upstream: 'https://[instance].source.acquia.com/api' }); -
Deploy as Reverse Proxy
# Using agent-docker cd agent-docker/deployments/nas/ docker-compose up compliance-shield -
Test with Source Sandbox
# Get Source sandbox credentials from Acquia export SOURCE_API_URL="https://sandbox.source.acquia.com/api" export SOURCE_API_KEY="your-api-key" # Test request through compliance-engine curl -H "Authorization: Bearer $SOURCE_API_KEY" \ http://localhost:3010/api/node/article
Deliverables
- Cedar policy templates (5 policies)
- Compliance Shield Docker image
- Customer onboarding runbook
- Pitch deck (10 slides)
- Partnership proposal
Revenue Target: $300k ARR
š Product 1.2: Source DevOps Accelerator (Week 5-6)
Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā @bluefly/source-sdk (TypeScript) ā
ā ⢠Auto-generated from OpenAPI spec ā
ā ⢠Zod validation for runtime safety ā
ā ⢠Type-safe client (no any types) ā
āāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
v
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā GitLab CI/CD Pipeline ā
ā ⢠Fetch content from Source ā
ā ⢠Transform to code (Markdown, JSON) ā
ā ⢠Run tests (Playwright) ā
ā ⢠Deploy to production ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Implementation Steps
-
Generate TypeScript SDK
# Use @hey-api/openapi-ts (NOT openapi-typescript-codegen) cd api-schema-registry npx @hey-api/openapi-ts \ --input openapi/acquia-cms/openapi-converted.yaml \ --output packages/source-sdk/src \ --client axios -
Add Zod Validation Layer
// packages/source-sdk/src/validation.ts import { z } from 'zod'; export const ArticleSchema = z.object({ type: z.literal('node--article'), id: z.string().uuid(), attributes: z.object({ title: z.string(), body: z.string().optional() }) }); // Runtime validation export function validateArticle(data: unknown) { return ArticleSchema.parse(data); } -
Create GitLab CI Templates
# gitlab_components/templates/acquia-source-ci.yml include: - component: blueflyio/gitlab_components/acquia-source-deploy@1.0.0 stages: - fetch - transform - test - deploy fetch-content: stage: fetch script: - npx @bluefly/source-sdk fetch --type article --output content/ test-content: stage: test script: - npx playwright test -
Build Example Projects
- Content migration (Source ā Git)
- CI/CD integration (auto-deploy on content change)
- Testing examples (Playwright + Source SDK)
Deliverables
-
@bluefly/source-sdknpm package - GitLab CI component
- 3 example projects
- Documentation site (docs/)
Revenue Target: $270k ARR
š¤ Product 1.3: Source AI Content Agents (Week 7-8)
Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā agent-mesh ā
ā ⢠Coordinates 4 Acquia Source agents ā
ā ⢠Routes requests to appropriate agent ā
ā ⢠Aggregates results ā
āāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāāā“āāāāāāāāāāā¬āāāāāāāāāāā¬āāāāāāāāāāā
v v v v
āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā
ā Content ā ā SEO ā ā Taxonomy ā ā DAM ā
ā Auditor ā ā Optimizer ā ā Manager ā ā Coordinator ā
āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā
4 OSSA Agents
1. Content Auditor
Purpose: Analyze content quality, readability, accessibility
OSSA Manifest:
{ "id": "acquia-source-content-auditor", "name": "Acquia Source Content Auditor", "version": "0.4.9", "agent_type": "analyzer", "access_tier": "tier_1_read", "inputs": [ { "name": "content", "type": "node--article", "required": true } ], "outputs": [ { "name": "audit_report", "type": "ContentAuditReport" } ] }
2. SEO Optimizer
Purpose: Improve SEO scores (meta descriptions, keywords, structure)
Tasks:
- Analyze meta descriptions (length, keywords)
- Check heading structure (H1, H2, H3 hierarchy)
- Suggest keyword improvements
- Generate SEO-friendly slugs
3. Taxonomy Manager
Purpose: Organize tags, categories, auto-tag content
Tasks:
- Analyze existing taxonomy structure
- Suggest new tags/categories
- Auto-tag content based on NLP analysis
- Detect duplicate/similar terms
4. DAM Coordinator
Purpose: Sync Acquia DAM with Source content
Tasks:
- Detect missing DAM assets
- Suggest alt text for images
- Optimize image formats (WebP, AVIF)
- Track asset usage across content
Implementation Steps
-
Create OSSA Manifests
cd platform-agents/packages/@ossa/ mkdir acquia-source-agents cd acquia-source-agents # Create 4 manifests touch content-auditor.json touch seo-optimizer.json touch taxonomy-manager.json touch dam-coordinator.json -
Implement Agents
// platform-agents/packages/@ossa/acquia-source-agents/src/content-auditor.ts import { OSSAAgent } from '@bluefly/agentic-flows'; import { SourceSDK } from '@bluefly/source-sdk'; export class ContentAuditor extends OSSAAgent { async execute(input: ContentInput): Promise<AuditReport> { const sdk = new SourceSDK(); const article = await sdk.getArticle(input.articleId); // Analyze content const readability = this.analyzeReadability(article.body); const accessibility = this.checkAccessibility(article); return { score: readability.score, issues: accessibility.issues, recommendations: this.generateRecommendations(readability, accessibility) }; } } -
Deploy to agent-mesh
# Using agent-buildkit buildkit agents deploy \ --agent acquia-source-content-auditor \ --target agent-mesh \ --mesh-url http://localhost:3005 -
Test Agent Coordination
# Send request to agent-mesh curl -X POST http://localhost:3005/api/agents/execute \ -H "Content-Type: application/json" \ -d '{ "agent": "acquia-source-content-auditor", "input": { "articleId": "uuid-here" } }'
Deliverables
- 4 OSSA agent manifests
- 4 agent implementations
- Agent deployment guide
- Marketplace listings
- Pilot results report
Revenue Target: $72k ARR
š Success Metrics
Technical Metrics
- Zero validation errors
- 100% type coverage (no
any) - >90% test coverage
- <100ms p95 response time (Compliance Shield)
- Zero runtime errors (SDK)
Business Metrics
- 3 pilot customers (30 days)
- $50k MRR committed (30 days)
- 15 paying customers (90 days)
- $200k MRR (90 days)
- Acquia partnership agreement (90 days)
š§ Tools & Libraries
Required
@hey-api/openapi-ts- SDK generationzod- Runtime validationcedar-policy- Authorization policies@bluefly/compliance-engine- Policy enforcement@bluefly/agent-mesh- Agent orchestration@bluefly/agentic-flows- OSSA agent framework
Optional
turndown- HTML to Markdown conversion@playwright/test- E2E testingvitest- Unit testing@redocly/cli- OpenAPI validation
šÆ Elite Standards Checklist
| Standard | Product 1.1 | Product 1.2 | Product 1.3 |
|---|---|---|---|
| Use existing libraries | ā cedar-policy | ā @hey-api | ā agentic-flows |
| Schema-first | ā Cedar | ā OpenAPI | ā OSSA manifests |
| DRY principle | ā Policies | ā SDK | ā Base agent class |
| SOLID principles | ā | ā | ā |
| Feature-based structure | ā | ā | ā |
| Zod validation | N/A (Cedar) | ā REQUIRED | ā |
Zero any types | ā | ā | ā |
| TDD | ā | ā | ā |
Target Grade: A+ (all products)
š Related Documents
Planning:
TODO/TODO-ACQUIA-SOURCE.md- Future work itemsTODO/ARCHITECTURE.md- Strategic initiativeTODO/AGENTS.md- AI Content AgentsTODO/SECURITY.md- Compliance Shield
Completed:
COMPLETED/2026-02-05-acquia-source-phase1.md- Phase 1 reportCOMPLETED/COMPLETED-ACQUIA-SOURCE.md- Detailed summary
Progress:
INPROGRESS/INPROGRESS-ACQUIA-SOURCE.md- Active work (currently empty)
š Support & Resources
GitLab Repos:
- api-schema-registry: https://gitlab.com/blueflyio/agent-platform/api-schema-registry
- compliance-engine: https://gitlab.com/blueflyio/agent-platform/compliance-engine
- platform-agents: https://gitlab.com/blueflyio/platform-agents
Documentation:
- Acquia Source: https://docs.acquia.com/source
- Cedar Policy: https://www.cedarpolicy.com/
- OSSA Spec: https://gitlab.com/blueflyio/openstandardagents
Partnership:
- Acquia Partnership Team: partnerships@acquia.com
- BlueFly Contact: tscola@bluefly.io
Created: 2026-02-06 Owner: All agents working on Acquia Source products Status: ACTIVE - Reference guide for all 3 products Next Update: After each product launch