Skip to main content

Crate cratefield_tables_api

Crate cratefield_tables_api 

Source
Expand description

The HTTP API over a venture’s declared tables (issue #153).

Not a module crate, which is why it is not named like one. A crates/module-* crate provides a Module and the conformance kit runs against every one of them; this provides the decision and the routes that a venture’s generated tables module calls. That module has to be generated source rather than a library because personal_data() is &'static all the way down and cannot be assembled from a manifest read at runtime.

A [tables] declaration already becomes DDL, a module, a privacy declaration, an access level and the statements that read and write a row. This is where a request meets them.

Reading the access decision on its own is the point of splitting access out: it decides who sees whose rows and it has no HTTP in it, so every case is a value rather than a request.

Re-exports§

pub use access::FORBIDDEN;
pub use access::MISDECLARED;
pub use access::NO_MEMBERSHIP_FACT;
pub use access::NOT_YOURS_TO_GIVE;
pub use access::READ_ONLY;
pub use access::Reach;
pub use access::TableApi;
pub use access::UNAUTHENTICATED;
pub use access::may_read;
pub use access::may_write;
pub use access::settle_subject;
pub use batch::Batch;
pub use batch::MAX_READS;
pub use batch::Read;
pub use batch::run as run_batch;
pub use declared::Declared;
pub use declared::parse;
pub use read::Asked;
pub use read::PAGE;
pub use read::Tables;
pub use read::one;
pub use read::page;
pub use routes::BAD_CURSOR;
pub use routes::BAD_KEY;
pub use routes::COMPOSITE_KEY;
pub use routes::Key;
pub use routes::NOT_A_KEY_COLUMN;
pub use routes::PARTIAL_KEY;
pub use routes::cursor_from_query;
pub use routes::key_from_path;
pub use routes::router;
pub use surface::surface;
pub use write::ALREADY_EXISTS;
pub use write::NOT_A_ROW;
pub use write::create;
pub use write::remove;
pub use write::replace;

Modules§

access
Who may reach a declared table’s rows, and which of them (issue #153).
batch
Several declared reads in one request (issue #153).
declared
The declared tables, as a venture’s generated module carries them (issue #153).
read
Reading a declared table’s rows (issue #153).
routes
The axum routes over a venture’s declared tables (issue #153).
surface
What a venture publishes about the tables it declares (issue #153).
write
Writing a declared table’s rows (issue #153).