API Reference

Protocol Documentation

Table of Contents

Top

schemas/shrike/v1/envelope.proto

EntityEnvelope

FieldTypeLabelDescription
entity_uuidstring
appstring
entity_typestring
topicstring
event_typestring"created"
occurred_atgoogle.protobuf.Timestamp
payloadbytes

Top

schemas/shrike/v1/import_request.proto

ImportRequest

ImportRequest is published to the shrike Kafka topic by upstream services when a new resource is ready to be ingested. It carries the entity identity, the upstream domain, and a pointer to the pre-extracted text file stored in S3/MinIO.

FieldTypeLabelDescription
entity_uuidstring
entity_typestringe.g. "Book", "Site"
appstringupstream service / domain e.g. "weevil", "lynx"
bucketstringS3/MinIO bucket name
keystringS3/MinIO object key (path to the text file)
titlestring
tagsstringrepeated
metadataImportRequest.MetadataEntryrepeatedauthor, isbn, source_url, etc.

ImportRequest.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

Top

schemas/shrike/v1/index_record.proto

IndexRecord

FieldTypeLabelDescription
uuidstring
appstring
entity_typestring
titlestring
source_urlstring
tagsstringrepeated
indexed_atgoogle.protobuf.Timestamp

Top

schemas/shrike/v1/services/index_record.proto

CreateIndexRecordRequest

FieldTypeLabelDescription
dataschemas.shrike.v1.IndexRecord

CreateIndexRecordResponse

FieldTypeLabelDescription
dataschemas.shrike.v1.IndexRecord

DeleteIndexRecordRequest

FieldTypeLabelDescription
uuidstring

DeleteIndexRecordResponse

FieldTypeLabelDescription
successbool

GetIndexRecordRequest

FieldTypeLabelDescription
uuidstring

GetIndexRecordResponse

FieldTypeLabelDescription
dataschemas.shrike.v1.IndexRecord

ListIndexRecordsRequest

FieldTypeLabelDescription
countint32optional
cursorstringoptional

ListIndexRecordsResponse

FieldTypeLabelDescription
dataschemas.shrike.v1.IndexRecordrepeated
cursorstring
countint32

UpdateIndexRecordRequest

FieldTypeLabelDescription
uuidstring
dataschemas.shrike.v1.IndexRecord

UpdateIndexRecordResponse

FieldTypeLabelDescription
dataschemas.shrike.v1.IndexRecord

IndexRecordService

Method NameRequest TypeResponse TypeDescription
ListIndexRecordsListIndexRecordsRequestListIndexRecordsResponse
GetIndexRecordGetIndexRecordRequestGetIndexRecordResponse
CreateIndexRecordCreateIndexRecordRequestCreateIndexRecordResponse
UpdateIndexRecordUpdateIndexRecordRequestUpdateIndexRecordResponse
DeleteIndexRecordDeleteIndexRecordRequestDeleteIndexRecordResponse

Top

schemas/shrike/v1/services/search.proto

Facet

FieldTypeLabelDescription
namestring
valuesFacetValuerepeated

FacetValue

FieldTypeLabelDescription
valuestring
countint64

GetEntityRequest

FieldTypeLabelDescription
uuidstring

GetEntityResponse

FieldTypeLabelDescription
entity_uuidstring
appstring
entity_typestring
titlestring
full_textstring
source_urlstring
tagsstringrepeated
indexed_atstring

GetIndexStatsRequest

GetIndexStatsResponse

FieldTypeLabelDescription
total_documentsint64
qdrant_vectorsint64
postgres_rowsint64
last_updatedgoogle.protobuf.Timestamp

Highlight

FieldTypeLabelDescription
fieldstring
fragmentstring

ReindexRequest

FieldTypeLabelDescription
uuidstring

ReindexResponse

FieldTypeLabelDescription
successbool
messagestring

SearchFilter

FieldTypeLabelDescription
appsstringrepeated
entity_typesstringrepeated
tagsstringrepeated
after_datestring
before_datestring
entity_uuidsstringrepeatedrestrict results to these entity UUIDs

SearchOptions

FieldTypeLabelDescription
fuzzybool
fuzzinessint32
highlightbool

SearchRequest

FieldTypeLabelDescription
querystring
modestring"semantic"
limitint32
min_scorefloat
filterSearchFilter
optionsSearchOptions
page_sizeint32
page_numberint32

SearchResponse

FieldTypeLabelDescription
resultsSearchResultrepeated
totalint32
mode_usedstring
facetsFacetrepeated
page_numberint32
total_pagesint32
took_msint64

SearchResult

FieldTypeLabelDescription
entity_uuidstring
appstring
entity_typestring
titlestring
snippetstring
previewstring
source_urlstring
scorefloat
tagsstringrepeated
highlightsHighlightrepeated

SuggestRequest

FieldTypeLabelDescription
querystring
fieldstring
max_suggestionsint32

SuggestResponse

FieldTypeLabelDescription
suggestionsstringrepeated

SearchService

Method NameRequest TypeResponse TypeDescription
SearchSearchRequestSearchResponse
GetEntityGetEntityRequestGetEntityResponse
SuggestSuggestRequestSuggestResponse
GetIndexStatsGetIndexStatsRequestGetIndexStatsResponse
ReindexReindexRequestReindexResponse

Top

schemas/shrike/v1/text_extracted.proto

TextExtractedEvent

FieldTypeLabelDescription
entity_uuidstring
appstring
entity_typestring
full_textstring
titlestring
source_urlstring
tagsstringrepeated

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 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^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)