Last updated 2026-08-26

Manifest Specification

Declare runtimes, database servers, topics, buckets, and auth foundations in Fluffy YAML.


Manifest Specification

Fluffy manifests declare your application components, dependencies, and environment topology. Every resource declared in a manifest is strictly typed and resolved at compile time.


#Workspace Manifest Structure

Workspaces are defined in fluffy-chainsaw.workspace.yaml:

yaml
1apiVersion: fluffy-chainsaw.dev/v1
2name: my-project
3children:
4 - dir: services/api
5 - dir: web/portal
6
7environments:
8 local:
9 deployment:
10 identity: local-dev-id
11 provider: application
12 providers:
13 application:
14 type: gcp
15 project: fluffy-local
16 region: europe-west1
17 prod:
18 deployment:
19 identity: ad6b40e606b56fadb804db3bdf8da377
20 provider: application
21 providers:
22 application:
23 type: gcp
24 project: my-prod-project
25 region: europe-west1

#Runtimes and Entrypoints

Each service defines its runtime characteristics and bound capabilities:

yaml
1runtimes:
2 api:
3 artifact: runtimes/api
4 port: 8080
5 capabilities:
6 databaseServers:
7 primary:
8 databases:
9 - { name: main-db, actions: [read, write] }
10 topics:
11 - { name: orders, actions: [produce] }
12 secrets:
13 - { name: stripe-api-key, actions: [read] }

#Databases and Storage

Declare stateful infrastructure requirements declaratively:

yaml
1databaseServers:
2 primary:
3 databases:
4 main-db: {}
5 analytics-db: {}
6
7buckets:
8 types:
9 uploads:
10 provider: application
11 addons:
12 gcp:
13 storageClass: STANDARD
14 versioning: true

#Capability Contracts & Actions

Fluffy enforces granular permissions on every bound capability:

CapabilitySupported ActionsGenerated SDK Method
Databaseread, write, admindb.GetConnection(), db.Pool()
Topicproduce, consumetopic.Publish(ctx, event)
Secretreadsecrets.GetSecret(ctx, name)
Bucketread, write, deletestorage.SignedUploadUrl(ctx, key)