Implement scoped interface extents across QX, generated bindings, SDK, Orch, Camino and browser queries. Preserve native projection, aggregation, pagination and watch invalidation without synthetic persisted objects. Validate exact query grants and scope freshness on execution and replay. Add local PostgreSQL, transport, browser and code-generation coverage. C1 implementation slice only: full-text indexes and Studio search adoption (C2/C3) remain tracked in the implementation handoff. No publication or deployment.
72 lines
1.8 KiB
Protocol Buffer
72 lines
1.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package quixos;
|
|
|
|
message CapabilityRef {
|
|
string interface_revision_id = 1;
|
|
string operation_id = 2;
|
|
// Optional fence for a view acquired through TryConform. Not an authority grant.
|
|
ConformanceWitness conformance = 3;
|
|
}
|
|
|
|
// Resolved native editing semantics. A source snapshot alone grants no writer.
|
|
message FieldEditing {
|
|
string getter_operation_id = 1;
|
|
string setter_operation_id = 2;
|
|
string document_type = 3;
|
|
string binding_digest = 4;
|
|
enum Mode {
|
|
UNSPECIFIED = 0;
|
|
REGISTER = 1;
|
|
CRDT = 2;
|
|
}
|
|
Mode mode = 5;
|
|
}
|
|
|
|
message ConformanceWitness {
|
|
string object_id = 1;
|
|
string interface_revision_id = 2;
|
|
string conformance_id = 3;
|
|
string workspace_revision_id = 4;
|
|
string workspace_epoch = 5;
|
|
}
|
|
|
|
message PackageExportRef {
|
|
string package_revision_id = 1;
|
|
string export_id = 2;
|
|
}
|
|
|
|
message InjectedDependency {
|
|
string port_id = 1;
|
|
oneof binding {
|
|
string state_slot_id = 2;
|
|
EdgeDependency edge = 3;
|
|
string interface_revision_id = 4;
|
|
string constructor_atom_id = 5;
|
|
string query_id = 7;
|
|
WorkspaceQueryDependency workspace_query = 8;
|
|
}
|
|
// Defaults to the invocation receiver. A checked dependency traversal can
|
|
// select a related object explicitly before the package runtime starts.
|
|
string object_id = 6;
|
|
}
|
|
|
|
// Scope evidence is not authority by itself. The caller must also hold the
|
|
// matching workspace-query grant (or the authenticated workspace user grant).
|
|
message WorkspaceQueryScope {
|
|
string workspace_id = 1;
|
|
string workspace_revision_id = 2;
|
|
string workspace_epoch = 3;
|
|
string interface_revision_id = 4;
|
|
string binding_digest = 5;
|
|
}
|
|
message WorkspaceQueryDependency {
|
|
string query_id = 1;
|
|
WorkspaceQueryScope scope = 2;
|
|
}
|
|
|
|
message EdgeDependency {
|
|
string edge_type_id = 1;
|
|
string projection_id = 2;
|
|
}
|