/v1/{tenant_id}/schemas/partial-write
This endpoint allows authorized users to make partial updates to the schema by adding or modifying actions within individual entities.
Request Payload Structure
schema_version
in the request metadata is left empty, the system will default to using the latest(head) schema version as the base for updates.
name
(string): The name of the entity to be changed.write
(string array): Conditions to be added. If a relation or permission/action already exists, it should return an error.delete
(string array): Names (permissions/actions) to be deleted. If the relation/permission/action name does not exist, it should return an error. Note: specifying the name is enough as relation/permission/action names should be unique.update
(string array): Conditions to be updated.schema_version
is specified, the endpoint will perform the same update process on the given version and generate a new version thereafter.
Partial Schema Endpoint Example Usage
Existing Schema
user
, organization
, and team
entities. This includes their respective relationships and permissions within the schema.
team
entity by introducing new permissions, the following PATCH request with the accompanying payload is sent:
schema_version
empty string, it signals the system to take the latest(head) schema version as a base for applying updates.
team
entity is revised to include the new permissions as illustrated below:
invite
and remove_user
permissions have been added, a member
relation has been included, the edit
permission has been deleted, and the delete
permission has been updated.tenant_id is a string that identifies the tenant. It must match the pattern "[a-zA-Z0-9-,]+", be a maximum of 64 bytes, and must not be empty.
A successful response.
SchemaPartialWriteResponse is the response message for the Parietal Write method in the Schema service. It returns the requested schema.