Skip to Content

Patch template project files

Applies revision-checked file patches to the shared project workspace overlay. Request: PATCH /v1/templates/{id}/workspace. Scope: templates:update.

PATCH
/v1/templates/{id}/workspace

Applies revision-checked file patches to the shared project workspace overlay.

Authorization

apiKey
headerx-api-key<token>

Path Parameters

id*string
Match^tmpl_[0-9a-hjkmnp-tv-z]{16,24}$

Header Parameters

idempotency-key*string
Length1 <= length <= 255

Request Body

application/json
  1. body
expectedRevision*string
patches*array<>
Items1 <= items <= 512

Response Body

Success

application/json
  1. response
workspace*
files*
Example Request
import { createClient } from "samva";

const samva = createClient({ apiKey: process.env.SAMVA_API_KEY! });

const result = await samva.templates.patchWorkspace({
  "id": "example",
  "expectedRevision": "example",
  "patches": [
    {
      "path": "example",
      "content": "example"
    }
  ]
});
Example Response
{
  "workspace": {
    "projectId": "string",
    "organizationId": "string",
    "ownerEpoch": 0,
    "repositoryName": "string",
    "defaultBranch": "string",
    "baseCommit": "string",
    "remoteHead": "string",
    "pendingRemoteHead": "string",
    "revision": "string",
    "overlay": {
      "property1": "string",
      "property2": "string"
    },
    "assetChanges": [
      {
        "path": "string",
        "status": "added"
      }
    ],
    "conflicts": [
      {
        "path": "string",
        "base": "string",
        "draft": "string",
        "main": "string"
      }
    ],
    "provenance": {
      "references": [
        {
          "kind": "string",
          "digest": "string",
          "locator": "string"
        }
      ]
    },
    "mounts": [
      {
        "kind": "project",
        "root": "/project",
        "access": "read-write"
      }
    ],
    "libraryManifestDigest": "string",
    "createdAt": "string",
    "updatedAt": "string",
    "createdBy": {
      "userId": "string",
      "via": "api"
    },
    "updatedBy": {
      "userId": "string",
      "via": "api"
    }
  },
  "files": {
    "property1": "string",
    "property2": "string"
  }
}

Related documentation