Protocol Documentation

April 2, 2026 · View on GitHub

Table of Contents

Top

aserto/directory/common/v3/common.proto

Object

FieldTypeLabelDescription
typestringobject type identifier
idstringobject instance identifier
display_namestringDeprecated. display name object (optional) (DEPRECATED)
propertiesgoogle.protobuf.Structproperty bag (optional)
created_atgoogle.protobuf.TimestampDeprecated. created at timestamp (UTC) (DEPRECATED)
updated_atgoogle.protobuf.Timestamplast updated timestamp (UTC)
etagstringobject instance etag (optional)

ObjectIdentifier

Object identifier

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier

PaginationRequest

Pagination request

FieldTypeLabelDescription
sizeint32requested page size, valid value between 1-100 rows (optional, default 100)
tokenstringpagination start token (optional, default "")

PaginationResponse

Pagination response

FieldTypeLabelDescription
next_tokenstringnext page token, when empty there are no more pages to fetch

Relation

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
relationstringobject relation name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier
subject_relationstringsubject relation name (optional)
created_atgoogle.protobuf.TimestampDeprecated. created at timestamp (UTC) (DEPRECATED)
updated_atgoogle.protobuf.Timestamplast updated timestamp (UTC)
etagstringobject instance etag (optional)

RelationIdentifier

Relation identifier

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
relationstringobject relation name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier
subject_relationstringsubject relation name (optional)

Top

aserto/directory/exporter/v3/exporter.proto

ExportRequest

FieldTypeLabelDescription
optionsuint32data export options mask
start_fromgoogle.protobuf.Timestampstart export from timestamp (UTC)

ExportResponse

FieldTypeLabelDescription
objectaserto.directory.common.v3.Objectobject instance (data)
relationaserto.directory.common.v3.Relationrelation instance (data)
statsgoogle.protobuf.Structobject and/or relation stats (no data)

Option

NameNumberDescription
OPTION_UNKNOWN0nothing selected (default initialization value)
OPTION_DATA_OBJECTS8object instances
OPTION_DATA_RELATIONS16relation instances
OPTION_DATA24all data = OPTION_DATA_OBJECTS
OPTION_STATS64stats

Exporter

Method NameRequest TypeResponse TypeDescription
ExportExportRequestExportResponse streamexport objects and relations as a stream

Top

aserto/directory/importer/v3/importer.proto

ImportCounter

FieldTypeLabelDescription
recvuint64number of messages received
setuint64number of messages with OPCODE_SET
deleteuint64number of messages with OPCODE_DELETE
erroruint64number of messages resulting in error
typestringcounter of type (object

ImportRequest

FieldTypeLabelDescription
op_codeOpcodeoperation Opcode enum value
objectaserto.directory.common.v3.Objectobject import message
relationaserto.directory.common.v3.Relationrelation import message

ImportResponse

FieldTypeLabelDescription
objectImportCounterDeprecated. object import counter
relationImportCounterDeprecated. relation import counter
statusImportStatusimport status message
counterImportCounterimport counter per type

ImportStatus

FieldTypeLabelDescription
codeuint32gRPC status code (google.golang.org/grpc/codes)
msgstringgRPC status message (google.golang.org/grpc/status)
reqImportRequestreq contains the original import request message

Opcode

NameNumberDescription
OPCODE_UNKNOWN0
OPCODE_SET1
OPCODE_DELETE2
OPCODE_DELETE_WITH_RELATIONS3

Importer

Method NameRequest TypeResponse TypeDescription
ImportImportRequest streamImportResponse streamimport stream of objects and relations

Top

aserto/directory/model/v3/model.proto

Body

FieldTypeLabelDescription
databytesmanifest content

DeleteManifestRequest

FieldTypeLabelDescription
emptygoogle.protobuf.Emptyempty request

DeleteManifestResponse

FieldTypeLabelDescription
resultgoogle.protobuf.Emptyempty result

GetManifestRequest

FieldTypeLabelDescription
emptygoogle.protobuf.Emptyempty request

GetManifestResponse

FieldTypeLabelDescription
metadataMetadataManifest metadata
bodyBodyManifest content
modelgoogle.protobuf.StructModel

Metadata

FieldTypeLabelDescription
updated_atgoogle.protobuf.Timestamplast updated timestamp (UTC)
etagstringobject instance etag (optional)

SetManifestRequest

FieldTypeLabelDescription
bodyBodyManifest content

SetManifestResponse

FieldTypeLabelDescription
resultgoogle.protobuf.Emptyempty result

Model

Method NameRequest TypeResponse TypeDescription
GetManifestGetManifestRequestGetManifestResponse streamget manifest instance
SetManifestSetManifestRequest streamSetManifestResponseset manifest instance
DeleteManifestDeleteManifestRequestDeleteManifestResponsedelete manifest instance

Top

aserto/directory/openapi/v3/openapi.proto

Top

aserto/directory/reader/v3/reader.proto

CheckPermissionRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
permissionstringpermission name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier
traceboolcollect trace information (optional)

CheckPermissionResponse

FieldTypeLabelDescription
checkboolcheck result
tracestringrepeatedtrace information

CheckRelationRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
relationstringrelation name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier
traceboolcollect trace information (optional)

CheckRelationResponse

FieldTypeLabelDescription
checkboolcheck result
tracestringrepeatedtrace information

CheckRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
relationstringrelation name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier
traceboolcollect trace information (optional)

CheckResponse

FieldTypeLabelDescription
checkboolcheck result
tracestringrepeatedtrace information
contextgoogle.protobuf.Structcontext

ChecksRequest

FieldTypeLabelDescription
defaultCheckRequest
checksCheckRequestrepeated

ChecksResponse

FieldTypeLabelDescription
checksCheckResponserepeated

GetGraphRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier (optional)
relationstringrelation name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier (optional)
subject_relationstringsubject relation name (optional)
explainboolreturn graph paths for each result (optional)
traceboolcollect trace information (optional)

GetGraphResponse

FieldTypeLabelDescription
resultsaserto.directory.common.v3.ObjectIdentifierrepeatedmatching object identifiers
explanationgoogle.protobuf.Structexplanation of results
tracestringrepeatedtrace information

GetObjectManyRequest

FieldTypeLabelDescription
paramaserto.directory.common.v3.ObjectIdentifierrepeatedobject identifier list

GetObjectManyResponse

FieldTypeLabelDescription
resultsaserto.directory.common.v3.Objectrepeatedarray of object instances

GetObjectRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
with_relationsboolmaterialize the object relations objects (optional)

GetObjectResponse

FieldTypeLabelDescription
resultaserto.directory.common.v3.Objectobject instance
relationsaserto.directory.common.v3.Relationrepeatedobject relations

GetObjectsRequest

FieldTypeLabelDescription
object_typestringobject type identifier (optional)
pageaserto.directory.common.v3.PaginationRequestpagination request (optional)

GetObjectsResponse

FieldTypeLabelDescription
resultsaserto.directory.common.v3.Objectrepeatedarray of object instances
pageaserto.directory.common.v3.PaginationResponsepagination response

GetRelationRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
relationstringrelation name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier
subject_relationstringsubject relation name (optional)
with_objectsboolmaterialize relation objects (optional)

GetRelationResponse

FieldTypeLabelDescription
resultaserto.directory.common.v3.Relationrelation instance
objectsGetRelationResponse.ObjectsEntryrepeatedmap of materialized relation objects

GetRelationResponse.ObjectsEntry

FieldTypeLabelDescription
keystring
valueaserto.directory.common.v3.Object

GetRelationsRequest

FieldTypeLabelDescription
object_typestringobject type identifier (optional)
object_idstringobject instance identifier (optional)
relationstringrelation name (optional)
subject_typestringsubject type identifier (optional)
subject_idstringsubject instance identifier (optional)
subject_relationstringsubject relation name (optional)
with_objectsboolmaterialize relation objects (optional)
with_empty_subject_relationboolonly return relations that do not have a subject relation (optional)
pageaserto.directory.common.v3.PaginationRequestpagination request (optional)

GetRelationsResponse

FieldTypeLabelDescription
resultsaserto.directory.common.v3.Relationrepeatedarray of relation instances
objectsGetRelationsResponse.ObjectsEntryrepeatedmap of materialized relation objects
pageaserto.directory.common.v3.PaginationResponsepagination response

GetRelationsResponse.ObjectsEntry

FieldTypeLabelDescription
keystring
valueaserto.directory.common.v3.Object

Reader

Method NameRequest TypeResponse TypeDescription
GetObjectGetObjectRequestGetObjectResponseget object
GetObjectManyGetObjectManyRequestGetObjectManyResponseget multiple objects
GetObjectsGetObjectsRequestGetObjectsResponselist objects
GetRelationGetRelationRequestGetRelationResponseget relation
GetRelationsGetRelationsRequestGetRelationsResponselist relations
CheckCheckRequestCheckResponsecheck if subject has relation or permission with object
ChecksChecksRequestChecksResponsechecks validates a set of check requests in a single roundtrip
CheckPermissionCheckPermissionRequestCheckPermissionResponsecheck permission (deprecated, use the check method) Deprecated: use directory.reader.v3.Check()
CheckRelationCheckRelationRequestCheckRelationResponsecheck relation (deprecated, use the check method) Deprecated: use directory.reader.v3.Check()
GetGraphGetGraphRequestGetGraphResponseget object relationship graph

Top

aserto/directory/writer/v3/writer.proto

DeleteObjectRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
with_relationsbooldelete object relations, both object and subject relations (optional)

DeleteObjectResponse

FieldTypeLabelDescription
resultgoogle.protobuf.Emptyempty result

DeleteRelationRequest

FieldTypeLabelDescription
object_typestringobject type identifier
object_idstringobject instance identifier
relationstringobject relation name
subject_typestringsubject type identifier
subject_idstringsubject instance identifier
subject_relationstringsubject relation name (optional)

DeleteRelationResponse

FieldTypeLabelDescription
resultgoogle.protobuf.Emptyempty result

SetObjectRequest

FieldTypeLabelDescription
objectaserto.directory.common.v3.Objectobject instance

SetObjectResponse

FieldTypeLabelDescription
resultaserto.directory.common.v3.Objectobject instance

SetRelationRequest

FieldTypeLabelDescription
relationaserto.directory.common.v3.Relationrelation instance

SetRelationResponse

FieldTypeLabelDescription
resultaserto.directory.common.v3.Relationrelation instance

Writer

Method NameRequest TypeResponse TypeDescription
SetObjectSetObjectRequestSetObjectResponseset object instance
DeleteObjectDeleteObjectRequestDeleteObjectResponsedelete object instance
SetRelationSetRelationRequestSetRelationResponseset relation instance
DeleteRelationDeleteRelationRequestDeleteRelationResponsedelete relation instance

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2282^{28}.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2562^{56}.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)