EQTY LabDocs

Export policy manifest

Builds a manifest of the governance statements recorded against one or more applied policies in the project, each statement once. Unless includeBlobs is false, it carries the statements' blobs, each policy document, each of the policies' control documents, and the attachments the statements' documents cite; includeContext fills in the manifest's context. The caller needs view_project_data on the project.

posthttps://<host>/gov/v1/policy/manifest/{project_uuid}
bash
curl --request POST \
  --url 'https://<host>/gov/v1/policy/manifest/{project_uuid}' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{"includeBlobs":true,"includeContext":true,"policyCids":["string"]}'
javascript
const response = await fetch("https://<host>/gov/v1/policy/manifest/{project_uuid}", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "includeBlobs": true,
    "includeContext": true,
    "policyCids": [
      "string"
    ]
  })
});

const data = await response.json();
typescript
interface Manifest {
  anchors?: Record<string, unknown>[] | null;
  blobs: Record<string, unknown>;
  contexts: Record<string, unknown>;
  statements: Record<string, unknown>;
  version: string;
}

const response = await fetch("https://<host>/gov/v1/policy/manifest/{project_uuid}", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "includeBlobs": true,
    "includeContext": true,
    "policyCids": [
      "string"
    ]
  })
});
if (!response.ok) throw new Error(`${response.status} ${response.statusText}`);

const data: Manifest = await response.json();
python
import requests

response = requests.post(
    "https://<host>/gov/v1/policy/manifest/{project_uuid}",
    headers={
        "Authorization": "Bearer <token>",
        "Content-Type": "application/json",
    },
    json={
        "includeBlobs": True,
        "includeContext": True,
        "policyCids": [
            "string",
        ],
    },
)
response.raise_for_status()
print(response.json())
go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{
	  "includeBlobs": true,
	  "includeContext": true,
	  "policyCids": [
	    "string"
	  ]
	}`)
	req, err := http.NewRequest(http.MethodPost, "https://<host>/gov/v1/policy/manifest/{project_uuid}", body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()

	data, err := io.ReadAll(res.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(res.Status, string(data))
}
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://<host>/gov/v1/policy/manifest/{project_uuid}"))
            .header("Authorization", "Bearer <token>")
            .header("Content-Type", "application/json")
            .method("POST", HttpRequest.BodyPublishers.ofString("""
                {
                  "includeBlobs": true,
                  "includeContext": true,
                  "policyCids": [
                    "string"
                  ]
                }
                """))
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient()
            .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.statusCode() + " " + response.body());
    }
}
csharp
using System.Net.Http.Headers;
using System.Text;

using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Post, "https://<host>/gov/v1/policy/manifest/{project_uuid}");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<token>");
request.Content = new StringContent("""
    {
      "includeBlobs": true,
      "includeContext": true,
      "policyCids": [
        "string"
      ]
    }
    """, Encoding.UTF8, "application/json");

using var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");
php
<?php

$ch = curl_init('https://<host>/gov/v1/policy/manifest/{project_uuid}');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => <<<'JSON'
    {
      "includeBlobs": true,
      "includeContext": true,
      "policyCids": [
        "string"
      ]
    }
    JSON,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
echo $status . " " . $response . PHP_EOL;
ruby
require "net/http"

uri = URI("https://<host>/gov/v1/policy/manifest/{project_uuid}")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
  {
    "includeBlobs": true,
    "includeContext": true,
    "policyCids": [
      "string"
    ]
  }
JSON

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end
puts "#{response.code} #{response.body}"
rust
// Cargo.toml dependencies: reqwest (features "json"), serde_json, tokio (features "full")
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let response = reqwest::Client::new()
        .post("https://<host>/gov/v1/policy/manifest/{project_uuid}")
        .header("Authorization", "Bearer <token>")
        .json(&json!({
            "includeBlobs": true,
            "includeContext": true,
            "policyCids": [
                "string"
            ]
        }))
        .send()
        .await?;

    println!("{} {}", response.status(), response.text().await?);
    Ok(())
}

Authorizations

  • BearerAuth · HTTP bearer (JWT)

Parameters

Path parameters

NameTypeDescription
project_uuid
required
string

Project UUID

Request bodyrequired

application/json
  • includeBlobsboolean | null

    Whether to include blobs in the manifest

  • includeContextboolean | null

    Whether to populate the context field in the manifest

  • policyCidsstring[]required
Examplejson
{
  "includeBlobs": true,
  "includeContext": true,
  "policyCids": [
    "string"
  ]
}

Responses

200Manifest aggregated from one or more applied policies

application/json
  • anchorsAnchor[] | null

    Optional anchor records proving statement publication

    Show properties

    Array of Anchor

    • locationsLocation[]required

      Storage locations where the statements are anchored

      Show properties

      Array of Location

      One of the following:

      • integrity_storestringrequired
      • urlstringrequired
    • payloadPayloadrequired

      Defines what type of data is being anchored

      Show Payload

      One of the following:

      • typestring (enum)required

        One ofStatement

      • typestring (enum)required

        One ofStatementId

    • statementsstring[]required

      List of statement identifiers or full statements being anchored

  • blobsobjectrequired

    Binary blobs referenced by statements, keyed by CID

    Show properties

    Map of string

  • contextsobjectrequired

    JSON-LD context definitions embedded for self-contained processing

    Show properties

    Map of any

  • statementsobjectrequired

    Statements included in this manifest, keyed by statement ID

    Show properties

    Map of Statement

    One of the following:

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • associationstring[]required

      The associated entities (CID or DID)

    • registeredBystringrequired

      DID of the entity that registered this statement

    • subjectstringrequired

      The subject of the association (CID or DID)

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • typeAssociationTyperequired

      One ofcertifiesincludesisInstanceOf

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • datastringrequired

      CID of the data being stored

    • operatedBystringrequired

      DID of the entity operating the storage system

    • registeredBystringrequired

      DID of the entity that registered this statement

    • storedOnstringrequired

      CID of the storage system description

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • metadatastringrequired

      CID of the metadata JSON document

    • registeredBystringrequired

      DID of the entity that registered this statement

    • subjectstringrequired

      The subject the metadata describes (CID or DID)

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • computationstring | null

      Optional CID of the computation definition or code

    • executedOnstring | null

      Optional identifier of the system where computation was executed

    • inputstringrequired

      Input data CIDs (single value or array)

    • operatedBystringrequired

      DID of the entity that operated the computation

    • outputstringrequired

      Output data CIDs (single value or array)

    • registeredBystringrequired

      DID of the entity that registered this statement

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • credentialanyrequired

      The W3C Verifiable Credential

    • registeredBystringrequired

      DID of the entity that registered this statement

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • credentialDsseEnveloperequired

      Serializable DSSE envelope for lineage data. Contains a payload and one or more signatures for secure transmission and storage of lineage statements.

      Show Envelope
      • payloadstringrequired

        The base64-encoded payload data

      • payloadTypestringrequired

        The type/format of the payload

      • signaturesSignature[]required

        One or more digital signatures

        Show properties

        Array of Signature

        • keyidstringrequired

          Key identifier used to create the signature

        • sigstringrequired

          The base64-encoded signature bytes

    • registeredBystringrequired

      DID of the entity that registered this statement

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • registeredBystringrequired

      DID of the entity that registered this statement

    • sigstoreBundlestringrequired

      Base64-encoded Sigstore bundle

    • subjectstringrequired

      The subject that the bundle is about

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    One of the following:

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • didstringrequired

      The DID being registered

    • registeredBystringrequired

      DID of the entity that registered this statement

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • datastringrequired

      Data artifact CID(s) being registered

    • registeredBystringrequired

      DID of the entity that registered this statement

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • entitystringrequired

      Entity UUID(s) being registered

    • registeredBystringrequired

      DID of the entity that registered this statement

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

    • @contextstringrequired

      JSON-LD context URL

    • @idstringrequired

      Unique identifier for this statement

    • @typestringrequired

      Statement type identifier

    • documentstringrequired

      CID of the governance document

    • registeredBystringrequired

      DID of the entity that registered this statement

    • subjectstringrequired

      The subject to which governance applies

    • timestampstringrequired

      ISO 8601 timestamp of when the statement was created

  • versionstringrequired

    Manifest format version

Examplejson
{
  "anchors": [
    {
      "locations": [
        {
          "integrity_store": "string"
        }
      ],
      "payload": {
        "type": "Statement"
      },
      "statements": [
        "string"
      ]
    }
  ],
  "blobs": {
    "key": "string"
  },
  "contexts": {
    "key": null
  },
  "statements": {
    "key": {
      "@context": "string",
      "@id": "string",
      "@type": "string",
      "association": [
        "string"
      ],
      "registeredBy": "string",
      "subject": "string",
      "timestamp": "string",
      "type": "certifies"
    }
  },
  "version": "string"
}

400The project UUID does not parse

application/json
  • callstackobject
    Show properties

    object | null

  • errorstringrequired
Examplejson
{
  "callstack": {},
  "error": "string"
}

401Missing or invalid bearer token

application/json
  • callstackobject
    Show properties

    object | null

  • errorstringrequired
Examplejson
{
  "callstack": {},
  "error": "string"
}

403Caller lacks view_project_data on the project

application/json
  • callstackobject
    Show properties

    object | null

  • errorstringrequired
Examplejson
{
  "callstack": {},
  "error": "string"
}

500Internal error, including a policy, control, statement document, or attachment missing from the blob store

application/json
  • callstackobject
    Show properties

    object | null

  • errorstringrequired
Examplejson
{
  "callstack": {},
  "error": "string"
}

503Auth Service or blob storage unavailable

application/json
  • callstackobject
    Show properties

    object | null

  • errorstringrequired
Examplejson
{
  "callstack": {},
  "error": "string"
}