// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
    collections: [
        {
            // This collection is used by developers to create and run arbitrary components.
            // The `ffx component run` command adds components to this collection.
            name: "ffx-laboratory",
            environment: "#laboratory-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",
        },
        {
            protocol: [
                "fuchsia.net.name.Lookup",
                "fuchsia.posix.socket.Provider",
            ],
            from: "#network",
            to: "#ffx-laboratory",
        },
        {
            storage: "laboratory-data",
            from: "self",
            as: "data",
            to: "#ffx-laboratory",
        },
        {
            storage: "tmp",
            from: "self",
            to: "#ffx-laboratory",
        },
        {
            directory: "dev-topological",
            from: "parent",
            to: "#ffx-laboratory",
        },
        {
            directory: "boot",
            from: "parent",
            to: "#ffx-laboratory",
        },
        {
            storage: "laboratory-cache",
            from: "self",
            as: "cache",
            to: "#ffx-laboratory",
        },
    ],
}
