RepositoryOptions
Defined in: types.ts:178
Type Parameters
Section titled “Type Parameters”Desc extends DescMessage
Properties
Section titled “Properties”columns?
Section titled “columns?”
optionalcolumns?:Record<string,ColumnConfig>
Defined in: types.ts:202
Per-field column configuration. Keys are proto field names (snake_case). See ColumnConfig for available options.
columns: { uid: { name: "user_id" }, display_name: { name: "name" }, settings: { serialize: "json" }, create_time: { timestamp: "create" },}engine
Section titled “engine”engine:
Engine
Defined in: types.ts:180
The database engine to use.
optionaletag?:object
Defined in: types.ts:234
Etag configuration. When the proto schema has an etag field, the repository computes and stores etags on create and update.
etag: { field: "etag", mask: fieldMask(MySchema, ["update_time"]), fn: (schema, msg) => customEtag(schema, msg),}field?
Section titled “field?”
optionalfield?:string
Proto field name (snake_case) of the etag field. Defaults to
"etag".
optionalfn?: (schema,msg) =>string
Custom etag generation function. Defaults to the etag
function from @protoutil/aip/etag.
Parameters
Section titled “Parameters”schema
Section titled “schema”Desc
MessageShape<Desc>
Returns
Section titled “Returns”string
optionalmask?:FieldMask
A FieldMask applied to the resource before calculating
its etag. Useful for excluding fields like update_time that
change on every write but don’t represent a semantic change.
fieldMasks?
Section titled “fieldMasks?”
optionalfieldMasks?:object
Defined in: types.ts:281
Default field masks applied to operations when no per-call mask is provided.
fieldMasks: { read: fieldMask(MySchema, ["uid", "display_name", "email"]), update: fieldMask(MySchema, ["display_name", "email"]),}
optionalread?:FieldMask
Default FieldMask for read operations (get, list).
Per-call readMask overrides this. Defaults to "*" (all fields).
update?
Section titled “update?”
optionalupdate?:FieldMask
Default FieldMask for update operations.
Per-call updateMask overrides this. Defaults to "*" (all fields).
filterDecls?
Section titled “filterDecls?”
optionalfilterDecls?:Decl[]
Defined in: types.ts:209
Additional AIP-160 filter declarations merged with the auto-generated
declarations from contextDecls(schema). Use this to register custom
functions (e.g. ago()) or additional identifiers.
interceptors?
Section titled “interceptors?”
optionalinterceptors?:Interceptor<Desc>[]
Defined in: types.ts:220
Interceptors applied to every repository operation. Forms a middleware chain in array order (first interceptor is outermost). See Interceptor for the function signature.
interceptors: [loggingInterceptor, otelInterceptor]pagination?
Section titled “pagination?”
optionalpagination?:object
Defined in: types.ts:262
Pagination defaults for list operations.
pagination: { defaultSize: 25, maxSize: 200 }defaultSize?
Section titled “defaultSize?”
optionaldefaultSize?:number
Default number of results per page. Defaults to 30.
maxSize?
Section titled “maxSize?”
optionalmaxSize?:number
Maximum allowed page size. Defaults to 100.
tableName?
Section titled “tableName?”
optionaltableName?:string
Defined in: types.ts:187
Override the database table name. Defaults to the proto message’s
full type name converted to snake_case (e.g.
protoutil.repo.v1.TestUser → protoutil_repo_v1_test_user).