← Back to Documentation

partially open source

Partially Open Source Model

Overview

MicroBuilder uses a partially open source architecture that balances community extensibility with enterprise-grade reliability.

What's Open vs Closed

βœ… Open Source: Community Integrations

The following components are open source and community-extensible:

  • Integration modules (Slack, GitHub, Stripe, Notion, etc.)
  • Module specifications and schemas
  • Example implementations
  • Testing frameworks for modules
  • Documentation for module development

Repository: microbuilder-integrations

πŸ”’ Closed Source: Core Engine

The following components remain proprietary:

  • Deterministic build engine
  • Capability Matrix routing logic
  • AI planning and orchestration
  • Core platform infrastructure
  • Subscription and billing logic

Repository: Private (this repository)

Why This Model?

Benefits of Partial Open Source

  1. Community Innovation

    • Anyone can contribute new integrations
    • Rapid expansion of supported services
    • Community-driven feature development
  2. Enterprise Reliability

    • Core engine remains stable and tested
    • No breaking changes from community PRs
    • Deterministic builds guaranteed
  3. Security & Trust

    • All modules are cryptographically signed
    • Maintainers review and verify code
    • No arbitrary code execution in builds
  4. Sustainable Business Model

    • Core platform monetization preserved
    • Community contributions enhance value
    • Win-win for users and business

How It Works

1. Community Contribution Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Developer       β”‚
β”‚ Creates Module  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Submit PR to    β”‚
β”‚ Public Repo     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ CI Verifies:    β”‚
β”‚ β€’ Tests pass    β”‚ ← Test verification happens HERE
β”‚ β€’ No forbidden  β”‚
β”‚ β€’ Valid schemas β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Maintainer      β”‚
β”‚ Reviews & Signs β”‚ ← Only signs if tests passed
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Promote to      β”‚
β”‚ verified-releaseβ”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Available in    β”‚
β”‚ Production      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. Build-Time Module Resolution

When building an app, the deterministic engine:

  1. Resolves required modules from build specification
  2. ONLY loads modules from the verified registry
  3. Validates cryptographic signatures (proves tests passed)
  4. Checks integrity hashes (SHA-256) against actual artifacts
  5. Scans for forbidden APIs in the code
  6. Executes module code in isolated sandbox

Key Principle: Unverified modules are rejected at build time.

3. Verification System

Every verified module undergoes:

At Signing Time (Maintainers):

  • βœ… CI tests must pass (unit tests, integration tests)
  • βœ… Code review by maintainers
  • βœ… Security audit
  • βœ… Cryptographic signing with private key

At Build Time (Automatic):

  • βœ… Signature verification: Proves maintainer approved it (and tests passed)
  • βœ… Integrity verification: SHA-256 hash of actual artifact matches
  • βœ… Forbidden API check: No file system, child processes, etc.
  • βœ… Schema validation: Input/output types defined

For Contributors

How to Submit a Module

  1. Fork the public integrations repo
  2. Create your module under /examples/<your-module>/
  3. Follow the Module Specification
  4. Test thoroughly with >80% coverage
  5. Submit a pull request
  6. Wait for maintainer review and signing

Requirements

  • βœ… Deterministic behavior (same input β†’ same output)
  • βœ… No forbidden APIs (fs, child_process, net, etc.)
  • βœ… Full TypeScript type safety
  • βœ… Comprehensive tests (>80% coverage)
  • βœ… OSI-approved license (MIT, Apache-2.0, etc.)
  • βœ… Clear documentation

What Happens After Approval

  1. CI runs all tests and verifies no forbidden APIs
  2. Maintainers review code for security issues
  3. If approved, maintainers sign module with private key
  4. Module is promoted to verified-release branch
  5. Core platform syncs signed modules
  6. Your module becomes available in production builds
  7. You're credited in the module registry

For Platform Users

Trust & Security

When you use MicroBuilder:

  • βœ… Only verified modules are used in your builds
  • βœ… Cryptographically signed by maintainers (proves tests passed)
  • βœ… Integrity-checked before execution (actual code verified)
  • βœ… Forbidden API detection prevents malicious code
  • βœ… Sandboxed execution isolates module code
  • βœ… Provenance tracking - every build records module versions and hashes

Module Transparency

View all verified modules:

Each module displays:

  • Name and version
  • License (all OSI-approved)
  • Signature hash
  • Signed date
  • Source code (public repo)

For Maintainers

Signing Workflow

  1. Review submitted module PR
  2. Verify CI checks passed (especially tests)
  3. Audit code for security issues
  4. Run signing workflow with private key (only if tests passed)
  5. Promote to verified-release branch

CRITICAL: Never sign modules that haven't passed CI tests. The signature is proof that tests passed.

Security Responsibilities

As maintainers, we commit to:

  • πŸ” Secure private key management
  • πŸ” Thorough code review before signing
  • πŸ§ͺ Verification of all test results before signing
  • 🚫 Rejection of malicious or low-quality code
  • πŸ“ Transparency in rejection reasons

Technical Architecture

Cryptographic Signing

// Maintainer private key (secret) - only sign if tests passed
const signature = RSA_SHA256_sign(module, PRIVATE_KEY);

// Public verification (anyone can verify)
const valid = RSA_SHA256_verify(module, signature, PUBLIC_KEY);

Two-Phase Verification

Phase 1: Signing Time (Maintainers Only)

  • CI tests must pass
  • Code review approval
  • Security audit
  • Cryptographic signing

Phase 2: Build Time (Automatic)

  • Signature verification (proves Phase 1 happened)
  • Integrity verification (artifact not tampered)
  • Forbidden API detection
  • Schema validation

Module Registry Structure

registry-verified/
  slack.post_message@1.0.0.json
  github.create_issue@2.1.0.json
  stripe.create_payment@1.5.0.json
  ...

Each file contains:

{
  "name": "slack.post_message",
  "version": "1.0.0",
  "inputs": { ... },
  "outputs": { ... },
  "entry": "dist/index.js",
  "integrity": "sha256-...",
  "license": "MIT",
  "signature": "...",
  "signedAt": "2025-01-01T00:00:00Z"
}

Build Provenance

Every build records:

{
  "buildId": "build_123",
  "modules": [
    {
      "name": "slack.post_message",
      "version": "1.0.0",
      "integrity": "sha256-...",
      "signature": "...",
      "verified": true
    }
  ]
}

Governance

Decision Making

  • Module acceptance: Maintainer review required + CI tests must pass
  • Breaking changes: Semver versioning enforced
  • Security issues: Immediate module revocation possible
  • Community feedback: GitHub discussions and issues

Roadmap

Future plans:

  • Community voting on module priorities
  • Automated signing for trusted contributors (after N successful PRs)
  • Module analytics dashboard
  • Community module marketplace

FAQ

Q: Can I use unverified modules?

A: No. The deterministic builder only accepts cryptographically signed modules from the verified registry. This ensures build reliability and security.

Q: How are tests verified?

A: Tests run in CI on the public repo. Maintainers only sign modules that pass all tests. The signature itself is proof that tests passed.

Q: How long does module approval take?

A: Typically 3-7 days, depending on code quality and security review complexity.

Q: Can I fork and self-sign modules?

A: You can fork the public repo and modify modules, but only official maintainer signatures are accepted by the production platform. For custom modules, contact us about enterprise licensing.

Q: What if a module has a vulnerability?

A: We immediately revoke the signature and notify all users. A fixed version is fast-tracked for signing after tests pass.

Q: Is the module source code auditable?

A: Yes! All module source code is in the public repository. You can audit it before using it in your builds.

Resources


Verified at the core. Open at the edges.