holochain_cli_bundle 0.2.2

DNA and hApp bundling functionality for the `hc` Holochain CLI utility
Documentation
{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "https://holochain.org/hc/app-manifest",
  "title": "AppManifest",
  "description": "Holochain hApp manifest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "manifest_version",
    "name",
    "roles"
  ],
  "properties": {
    "manifest_version": {
      "type": "string",
      "description": "The version of the app manifest schema"
    },
    "name": {
      "type": "string",
      "description": "The name of the app"
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "A description for the app"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "dna"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The ID which will be used for the role, the DNA which fills it and the cells created from that DNA"
          },
          "provisioning": {
            "description": "Rules to determine if and how a Cell will be created for this Dna",
            "oneOf": [
              {
                "description": "Always create a new Cell when installing this App",
                "type": "object",
                "required": [
                  "deferred",
                  "strategy"
                ],
                "properties": {
                  "deferred": {
                    "type": "boolean"
                  },
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "create"
                    ]
                  }
                }
              },
              {
                "description": "**NOT YET IMPLEMENTED**: Require that a Cell is already installed which matches the DNA version spec, and which has an Agent that's associated with this App's agent via DPKI. If no such Cell exists, *app installation fails*.",
                "type": "object",
                "required": [
                  "deferred",
                  "strategy"
                ],
                "properties": {
                  "deferred": {
                    "type": "boolean"
                  },
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "use_existing"
                    ]
                  }
                }
              },
              {
                "description": "**NOT YET IMPLEMENTED**: Try `UseExisting`, and if that fails, fallback to `Create`",
                "type": "object",
                "required": [
                  "deferred",
                  "strategy"
                ],
                "properties": {
                  "deferred": {
                    "type": "boolean"
                  },
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "create_if_not_exists"
                    ]
                  }
                }
              },
              {
                "description": "Install or locate the DNA, but never create a Cell for this DNA. Only allow clones to be created from the DNA specified. This case requires `clone_limit > 0`, otherwise no Cells will ever be created.",
                "type": "object",
                "required": [
                  "strategy"
                ],
                "properties": {
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "clone_only"
                    ]
                  }
                }
              }
            ]
          },
          "dna": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "bundled": {
                "type": "string",
                "description": "Expect file to be part of this bundle"
              },
              "path": {
                "type": "string",
                "description": "Get file from local filesystem (not bundled)"
              },
              "url": {
                "type": "string",
                "description": "Get file from URL"
              },
              "modifiers": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "network_seed": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "properties": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "additionalProperties": true
                  },
                  "origin_time": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "quantum_time": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                }
              },
              "version": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Deprecated, use installed_hash instead",
                "deprecationMessage": "use installed_hash instead"
              },
              "installed_hash": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The hash of the DNA to be installed. If specified, will cause installation to fail if the bundled DNA hash does not match this"
              },
              "clone_limit": {
                "type": "number",
                "minimum": 0
              }
            }
          }
        }
      }
    }
  }
}