URSY.DEVPART OF THE URSY NETWORKSign inBuild with URSY

Every contract sourcedEvery check datedGaps shown, never filledBuild with URSY

Capabilities

create_publication

Create a private native publication with immutable initial version.

How this capability is exposed

Stable ID
ursy.cloud:create_publication
Owning service
URSY.cloud
Runtime
See the source declaration

Capability declarations describe what the service exposes. They are not a guarantee of availability or permission to execute an operation.

Accepted contract

REGISTRY JSON
{
    "id": "ursy.cloud:create_publication",
    "name": "create_publication",
    "description": "Create a private native publication with immutable initial version.",
    "method": "POST",
    "path": "/v1/publications",
    "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
            "name": {
                "type": "string",
                "maxLength": 190,
                "x-ursy-maxBytes": 190
            },
            "parent_id": {
                "type": "string",
                "pattern": "^file_[1-9][0-9]{0,14}$"
            },
            "content": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "format": {
                        "type": "string",
                        "enum": [
                            "ursy/publish-native"
                        ]
                    },
                    "schemaVersion": {
                        "type": "integer",
                        "enum": [
                            1
                        ]
                    },
                    "pages": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "id": {
                                    "type": "string",
                                    "pattern": "^[A-Za-z0-9_-]{1,64}$"
                                },
                                "name": {
                                    "type": "string",
                                    "maxLength": 120,
                                    "x-ursy-maxBytes": 120
                                },
                                "size": {
                                    "type": "string",
                                    "enum": [
                                        "a4",
                                        "letter",
                                        "square",
                                        "business-card"
                                    ]
                                },
                                "orientation": {
                                    "type": "string",
                                    "enum": [
                                        "portrait",
                                        "landscape"
                                    ]
                                },
                                "background": {
                                    "type": "string",
                                    "pattern": "^#[a-fA-F0-9]{6}$"
                                },
                                "elements": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z0-9_-]{1,64}$"
                                            },
                                            "type": {
                                                "type": "string",
                                                "enum": [
                                                    "text",
                                                    "shape"
                                                ]
                                            },
                                            "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 98
                                            },
                                            "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 98
                                            },
                                            "w": {
                                                "type": "number",
                                                "minimum": 2,
                                                "maximum": 100
                                            },
                                            "h": {
                                                "type": "number",
                                                "minimum": 2,
                                                "maximum": 100
                                            },
                                            "rotation": {
                                                "type": "number",
                                                "minimum": -180,
                                                "maximum": 180
                                            },
                                            "text": {
                                                "type": "string",
                                                "maxLength": 10000,
                                                "x-ursy-maxBytes": 10000
                                            },
                                            "fill": {
                                                "type": "string",
                                                "pattern": "^#[a-fA-F0-9]{6}$"
                                            },
                                            "color": {
                                                "type": "string",
                                                "pattern": "^#[a-fA-F0-9]{6}$"
                                            },
                                            "fontSize": {
                                                "type": "number",
                                                "minimum": 8,
                                                "maximum": 160
                                            },
                                            "align": {
                                                "type": "string",
                                                "enum": [
                                                    "left",
                                                    "center",
                                                    "right"
                                                ]
                                            },
                                            "weight": {
                                                "type": "integer",
                                                "enum": [
                                                    400,
                                                    600,
                                                    700,
                                                    800
                                                ]
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "type",
                                            "x",
                                            "y",
                                            "w",
                                            "h",
                                            "rotation",
                                            "text",
                                            "fill",
                                            "color",
                                            "fontSize",
                                            "align",
                                            "weight"
                                        ]
                                    },
                                    "minItems": 0,
                                    "maxItems": 80
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "size",
                                "orientation",
                                "background",
                                "elements"
                            ]
                        },
                        "minItems": 1,
                        "maxItems": 24
                    }
                },
                "required": [
                    "format",
                    "schemaVersion",
                    "pages"
                ]
            },
            "idempotency_key": {
                "type": "string",
                "minLength": 8,
                "maxLength": 128,
                "pattern": "^[A-Za-z0-9._:-]+$"
            }
        },
        "required": [
            "name",
            "idempotency_key"
        ]
    },
    "outputSchema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
            "file": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "schema": {
                        "type": "string",
                        "enum": [
                            "ursy.cloud/file/v1"
                        ]
                    },
                    "id": {
                        "type": "string",
                        "pattern": "^file_[1-9][0-9]{0,14}$"
                    },
                    "workspace_id": {
                        "type": "string",
                        "pattern": "^ws_[1-9][0-9]*$"
                    },
                    "parent_id": {
                        "oneOf": [
                            {
                                "type": "string",
                                "pattern": "^file_[1-9][0-9]{0,14}$"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 190,
                        "x-ursy-maxBytes": 190
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "folder",
                            "document",
                            "spreadsheet",
                            "presentation",
                            "note",
                            "publication",
                            "pdf",
                            "uploaded_file"
                        ]
                    },
                    "current_version_id": {
                        "oneOf": [
                            {
                                "type": "string",
                                "pattern": "^ver_[1-9][0-9]*$"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "etag": {
                        "type": "string",
                        "pattern": "^\"[a-f0-9]{64}\"$"
                    },
                    "state": {
                        "type": "string",
                        "enum": [
                            "active",
                            "trashed"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    },
                    "human_url": {
                        "type": "string"
                    }
                },
                "required": [
                    "schema",
                    "id",
                    "workspace_id",
                    "parent_id",
                    "name",
                    "type",
                    "current_version_id",
                    "etag",
                    "state",
                    "created_at",
                    "updated_at",
                    "human_url"
                ]
            },
            "request_id": {
                "type": "string"
            },
            "replayed": {
                "type": "boolean"
            }
        },
        "required": [
            "file"
        ]
    },
    "auth_required": true,
    "scope": "cloud.files.create",
    "read_only": false,
    "service_id": "ursy-cloud",
    "parent_id": "",
    "summary": "Create a private native publication with immutable initial version.",
    "source_url": "https://api.ursy.cloud/v1/registry-capabilities",
    "source_type": "capability_manifest",
    "verified_at": "2026-10-14 04:03:00",
    "revision": "1a50cf33143264e0e3b8694a2430ca3339d0af2bccf00c325894dc6a32caa795",
    "type": "capabilities",
    "source": {
        "url": "https://api.ursy.cloud/v1/registry-capabilities",
        "type": "capability_manifest"
    },
    "last_verified_at": "2026-10-14 04:03:00",
    "stale": false
}