Skip to main content

Crate parse_rust_rest

Crate parse_rust_rest 

Source
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 ACL field a client sees and the _rperm/_wperm columns 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 where parameter.
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.