---
title: "Set a manifest."
method: POST
path: "/manifest"
tags: ["manifest"]
---

# Set a manifest.

`POST /manifest`

Before deploying the application to the cluster the manifest needs to be set once by the provider.
On success, an array containing key-value mapping for encrypted secrets to be used for recovering the Coordinator in case of disaster recovery.
The key matches each supplied key from RecoveryKeys in the Manifest.

Example for setting the manifest with curl:

```bash
curl --cacert marblerun.crt --data-binary @manifest.json "https://$MARBLERUN/manifest"
```

## Request body

- Manifest — Manifest defines the rules of a mesh
  - `Infrastructures` object — Infrastructures contains the allowed infrastructure providers and their properties.
  - `Marbles` object — Marbles contains the allowed services with their corresponding enclave and configuration parameters.
  - `Packages` object — Packages contains the allowed enclaves and their properties.
  - `RecoveryKeys` object — RecoveryKeys holds one or multiple RSA public keys to encrypt multiple secrets, which can be used to decrypt the sealed state again in case the encryption key on disk was corrupted somehow.
  - `Roles` object — Roles contains role definitions to manage permissions across the MarbleRun mesh
  - `Secrets` object — Secrets holds user-specified secrets, which should be generated and later on stored in a marble (if not shared) or in the core (if shared).
  - `TLS` object — TLS contains tags which can be assiged to Marbles to specify which connections should be elevated to TLS
  - `Users` object — Users contains user definitions, including certificates used for authentication and permissions.

## Response `200`

- object
  - `Data` RecoveryDataResp — RecoveryDataResp contains RSA-encrypted AES state sealing key with public key specified by user in manifest
    - `RecoverySecrets` object — An array containing key-value mappings for encrypted secrets to be used for recovering the Coordinator in case of disaster recovery. The key matches each supplied key from RecoveryKeys in the manifest.
  - `Status` string

## Other responses

- `500`

---

[API](https://skmtc.net/edgelesssys/apis/coordinator-client-api.md) · [All operations](https://skmtc.net/edgelesssys/apis/coordinator-client-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/edgelesssys/coordinator-client-api/revisions/8f4100af3603/schema)
