This section describes the fcproject.yaml file—the primary import/export format for defining, validating, and migrating an entire Fusioncat project architecture as plain text.
fcproject.yaml
, you can:
version
Integer indicating the fcproject file format version.
Incremented when YAML structure or validation rules change.export_parameters
(export only) Controls which parts of the project are included when exporting.
Each boolean flag toggles inclusion of that section in the output YAML.
include_export_parameters
: if true, the export_parameters block itself appears in the exported file.servers / apps / messages / schemas
: include the corresponding top‑level lists.include_only_latest_schema_versions
: when true, only the highest-numbered version for each schema is exported.include_only_schemas_used_in_messages
: when true, export only schemas referenced by messages.include_descriptions
: include description fields for entities throughout the export.servers
A list of server blocks. Each server must have:
name
: unique within the project.type
: protocol identifier (async+kafka, async+amqp, async+webhook, etc.).description
: human-readable label.resources
: array of resources (topics, queues, exchanges, endpoints).binds
(optional): AMQP-specific bindings linking exchanges to queues.name
: unique under this server.mode
: one of read, write, readwrite, or bind.type
: resource kind (topic, queue, exchange, endpoint, table).description
: free-form text.schemas
A list of schema definitions. Each schema block includes:
name
: unique identifier.type
: currently only jsonschema.version
: sequential integer, starting at 1.description
: optional summary.schema
: the JSONSchema document as a string, orexample
: a JSON instance conforming to the schema.messages
A list of message definitions. Each message has:
name
: unique within project.description
: what the message conveys.schema
: a nested block referencing
name
: schema nameversion
: optional (defaults to the latest version).apps
A list of application definitions. Each application block contains:
name
: unique identifier.description
: application purpose.receives
(optional): array of [ message, resource ] pairs the app consumes.sends
(optional): array of [ message, resource ] pairs the app produces.name
fields (servers, resources, schemas, messages, apps)
must be unique within a single project. They can contan latin alphabet leters, digits and _ symbol.