Migrations 0013_docs.sql + 0014_docs_triggers.sql land the docs table (JSONB body + GIN-on-jsonb_path_ops index, PK keyed on (app_id, collection, id) for cross-app isolation) and widen the triggers.kind and outbox.source_kind CHECK constraints to include 'docs', plus the docs_trigger_details detail table mirroring kv_trigger_details. picloud-shared grows the DocsService trait + DocRow/DocsListPage/ DocsError + NoopDocsService, the TriggerEvent::Docs variant with the prev_data change-data-capture surface, the DocsEventOp enum, the docs field on the Services bundle, and the SDK_VERSION bump 1.2 -> 1.3. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
43 lines
1.9 KiB
Rust
43 lines
1.9 KiB
Rust
//! Version constants for PiCloud's compatibility surfaces.
|
|
//!
|
|
//! See [`docs/versioning.md`](../../../../docs/versioning.md) for the
|
|
//! full scheme. The product version is sourced from the workspace
|
|
//! package version; the four surface versions live in this module
|
|
//! and are bumped under the rules in that doc.
|
|
|
|
/// Product version (e.g. `"0.2.0"`). Sourced from this crate's
|
|
/// `Cargo.toml` so the workspace-inherited package version is the
|
|
/// single point of update.
|
|
pub const PRODUCT_VERSION: &str = env!("CARGO_PKG_VERSION");
|
|
|
|
/// Rhai SDK version, in `"major.minor"` form. Scripts read this from
|
|
/// `ctx.sdk_version` for feature detection. Bump rules:
|
|
/// * patch (`1.x.0`): doc-only, no script-observable change
|
|
/// * minor (`1.0 → 1.1`): added functions / fields; existing
|
|
/// scripts must still run unchanged
|
|
/// * major (`1 → 2`): removed, renamed, retyped, restricted
|
|
///
|
|
/// 1.1 additions: `ctx.request.params`, `ctx.request.query`,
|
|
/// `ctx.request.rest`.
|
|
///
|
|
/// 1.2 additions (v1.1.1): `kv::collection(name).{get,set,has,delete,list}`,
|
|
/// `dead_letters::{replay,resolve}`, `ctx.event` for triggered handlers.
|
|
///
|
|
/// 1.3 additions (v1.1.2):
|
|
/// `docs::collection(name).{create,get,find,find_one,update,delete,list}`
|
|
/// with the v1.1.2 query DSL subset; `ctx.event.docs` for docs-trigger
|
|
/// handlers (carries `prev_data` change-data-capture for update/delete).
|
|
pub const SDK_VERSION: &str = "1.3";
|
|
|
|
/// HTTP API major version. Appears in URL paths as `/api/v{N}/...`.
|
|
/// Bump (new integer + new URL prefix) when the request/response
|
|
/// shape, status-code semantics, or auth model changes. The previous
|
|
/// major is kept live for at least one product-minor deprecation
|
|
/// window.
|
|
pub const API_VERSION: u32 = 1;
|
|
|
|
/// Wire-protocol version between manager / orchestrator / executor
|
|
/// nodes in cluster mode. Negotiated via the `X-PiCloud-Wire` header
|
|
/// on inter-service requests. Reserved at `1`; cluster mode is v1.3+.
|
|
pub const WIRE_VERSION: u32 = 1;
|