| { |
| collections: [ |
| { |
| // This collection is used by developers to create and run arbitrary components. |
| // The `ffx component run` command adds components to this collection. |
| // TODO(78792): This collection needs a formal name. |
| name: "ffx-laboratory", |
| environment: "#full-resolver-env", |
| durability: "transient", |
| }, |
| ], |
| capabilities: [ |
| // Components started in the laboratory should derive /data from /tmp. |
| // This is because the core realm only gives persistent storage to components |
| // that are registered with static instance IDs. Furthermore, components |
| // in this collection should not be using persistent storage anyway. |
| { |
| storage: "laboratory-data", |
| from: "parent", |
| subdir: "laboratory-data", |
| backing_dir: "tmp", |
| storage_id: "static_instance_id_or_moniker", |
| }, |
| { |
| storage: "laboratory-cache", |
| from: "parent", |
| subdir: "laboratory-cache", |
| backing_dir: "tmp", |
| storage_id: "static_instance_id_or_moniker", |
| }, |
| ], |
| offer: [ |
| { |
| protocol: [ |
| "fuchsia.logger.LogSink", |
| "fuchsia.process.Launcher", |
| ], |
| from: "parent", |
| to: "#ffx-laboratory", |
| }, |
| { |
| storage: "laboratory-data", |
| from: "self", |
| as: "data", |
| to: "#ffx-laboratory", |
| }, |
| { |
| storage: "tmp", |
| from: "self", |
| to: "#ffx-laboratory", |
| }, |
| { |
| directory: "dev", |
| from: "parent", |
| to: "#ffx-laboratory", |
| }, |
| { |
| directory: "boot", |
| from: "parent", |
| to: "#ffx-laboratory", |
| }, |
| { |
| storage: "laboratory-cache", |
| from: "self", |
| as: "cache", |
| to: "#ffx-laboratory", |
| }, |
| ], |
| } |