Expand description
The read and write pipelines. The behavioral heart.
Never references JS types, serde_json::Value-as-JS-value conventions, or JS async semantics.
Everything JavaScript lives behind the sidecar socket, and keeping this crate clean of it is
what makes that boundary real rather than aspirational. The one serde_json use is
query_parse and write, which read client-supplied documents, and those are JSON on the
wire rather than JS values.
The authorization model lives in clp and acl, and its structure is the point: stage
one is a gate that throws, stage two is a filter that narrows the query, and passing the gate
is not authorization to read anything.
Re-exports§
pub use acl::AclScope;pub use class_security::enforce_class_security;pub use clp::validate_permission;pub use clp::PermissionOptions;pub use clp::PointerPermOutcome;pub use clp::ProtectedFieldPlan;pub use clp::WriteAction;pub use guard::reject_reserved_keys;pub use guard::reject_reserved_keys_in;pub use guard::strip_internal_keys;pub use guard::to_response_body;pub use pipeline::count;pub use pipeline::create;pub use pipeline::delete;pub use pipeline::find;pub use pipeline::get;pub use pipeline::update;pub use pipeline::CreateResponse;pub use pipeline::Ctx;pub use pipeline::FindOptions;pub use pipeline::UpdateResponse;pub use query_parse::parse_include;pub use query_parse::parse_where;pub use query_parse::ParsedClause;pub use query_parse::ParsedWhere;pub use relations::RelatedToOutcome;pub use snapshot::SchemaSnapshot;pub use write::decode_write_body;pub use write::enforce_object_id_policy;pub use write::WriteBody;
Modules§
- acl
- ACL enforcement: the boundary between the
ACLfield a client sees and the_rperm/_wpermcolumns storage holds. - class_
security enforceRoleSecurity: the classes a client may not address at all.- clp
- Class-level permission enforcement.
- guard
- Guards applied to a client-supplied body before it reaches the pipeline.
- include
include: expanding pointers into the objects they point at.- pipeline
- The read and write pipelines.
- query_
parse - Parsing the
whereparameter. - relations
- Relations: the join tables, and the query constructs that read them.
- snapshot
- One schema snapshot per request.
- write
- The write body: decoding it, and lowering it onto the two write paths.