Mosaic SDK
The public contract language between the Mosaic Platform and the Modules that
extend it (ADR 0008).
A Module compiles against this module and nothing else of the Platform's.
It is deliberately small. Today it carries the content surface
(contracts/platform/v1): the object-graph models (Node, Part,
Relation, SourceBinding and their vocabularies), the content command,
query and result types, the ContentService interface a capability calls, and
the opaque Caller a capability forwards from its invocation context
(ADR 0016,
ADR 0017).
It holds no storage contracts, no transaction type, no identity or
configuration models, and no Platform implementation — a capability calls
application services, never stores. It depends only on the Go standard
library.
import v1 "github.com/mosaic-media/mosaic-sdk/contracts/platform/v1"
Status
Extracted from mosaic-platform into a standalone module and published:
v0.1.0 carried the content surface, v0.2.0 added the Capability
interface, and v0.3.0 added the ImportRequest that hands a module its
settings. The Platform and modules build against it as an ordinary tagged
dependency.
License
Apache License, Version 2.0 (see LICENSE and NOTICE).
The SDK is deliberately permissive: it is the contract a Module builds against,
so a Module author may use it under any license. This is independent of the
Platform's license (AGPL-3.0 with a Module Linking Exception).