Skip to main content
A Contribution is an audit and progress-tracking record for a user-initiated blueprint contribution run — typically triggered when a workspace user submits or publishes a new provider blueprint (e.g. building a connector for “amazon” or “qonto”). It captures the run lifecycle (status, started/ended timestamps, progress payload), the provider being built (provider_slug), the originating page (source_url), and the structured input data (addresses, country, flow_json). Each contribution is workspace-scoped via a nullable FK to Workspace that is stamped at creation time to prevent cross-tenant drift. The entity is written exclusively by the blueprint contribution pipeline (POST /v1/contribution) and updated by dedicated PATCH handlers for appending steps and transitioning status; no fields are user-editable via the records-table PATCH surface.
Internal object. Not currently exposed on the public REST API. The operations below describe the intended contract.

API operations

Data model

Attributes

Relationships

System-computed

  • contribution_id: generated by gen_random_uuid() on INSERT — never supplied by the client
  • created_at: set once on INSERT by MikroORM onCreate hook (new Date())
  • updated_at: refreshed on every flush by MikroORM onUpdate hook (new Date())
  • deleted_at: soft-delete sentinel — NULL on active rows; set by a soft-delete operation, never by the client directly
  • status default: ‘initial’ set by the entity class initializer and the DB column default — no application code needs to supply it on creation
  • workspace_pk: stamped at creation by ContributionService/route handler from req.workspace (JWT-resolved) so in-flight runs are always correctly tenant-scoped; nullable on pre-migration legacy rows

Example

Source: /Users/maximechampoux/platform/apps/api/src/database/entities/Contribution.ts · domain: intelligence · tier: Activity