reddb-io-server 1.12.0

RedDB server-side engine: storage, runtime, replication, MCP, AI, and the gRPC/HTTP/RedWire/PG-wire dispatchers. Re-exported by the umbrella `reddb` crate.
Documentation
use crate::server::route_catalog::{
    ListenerSurface, RouteAlias, RouteAudience, RouteAuth, RouteEntry, RouteGroupDefaults,
    RouteMethod, RouteRegistry, RouteStability,
};
use crate::server::routes::common::STANDARD_MIDDLEWARE;

const PHYSICAL_SURFACES: &[ListenerSurface] = &[ListenerSurface::Public];

const PHYSICAL_USER: RouteGroupDefaults = RouteGroupDefaults {
    family: "physical",
    audience: RouteAudience::Operator,
    auth: RouteAuth::UserRequired,
    surfaces: PHYSICAL_SURFACES,
    stability: RouteStability::Stable,
    middlewares: STANDARD_MIDDLEWARE,
};

const PHYSICAL_METADATA_ALIASES: &[RouteAlias] = &[RouteAlias::canonical(
    RouteMethod::Get,
    "/v1/ops/physical/metadata",
    "canonical v1 physical ops path",
)];

macro_rules! physical_aliases {
    ($method:expr, $pattern:expr) => {
        &[RouteAlias::canonical(
            $method,
            $pattern,
            "canonical v1 physical ops path",
        )]
    };
}

const PHYSICAL_ROUTES: &[RouteEntry] = &[
    RouteEntry::with_aliases(
        "physical.metadata",
        RouteMethod::Get,
        "/physical/metadata",
        PHYSICAL_METADATA_ALIASES,
    ),
    RouteEntry::with_aliases(
        "physical.native_header",
        RouteMethod::Get,
        "/physical/native-header",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-header"),
    ),
    RouteEntry::with_aliases(
        "physical.native_collection_roots",
        RouteMethod::Get,
        "/physical/native-collection-roots",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-collection-roots"),
    ),
    RouteEntry::with_aliases(
        "physical.native_manifest",
        RouteMethod::Get,
        "/physical/native-manifest",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-manifest"),
    ),
    RouteEntry::with_aliases(
        "physical.native_registry",
        RouteMethod::Get,
        "/physical/native-registry",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-registry"),
    ),
    RouteEntry::with_aliases(
        "physical.native_recovery",
        RouteMethod::Get,
        "/physical/native-recovery",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-recovery"),
    ),
    RouteEntry::with_aliases(
        "physical.native_catalog",
        RouteMethod::Get,
        "/physical/native-catalog",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-catalog"),
    ),
    RouteEntry::with_aliases(
        "physical.native_metadata_state",
        RouteMethod::Get,
        "/physical/native-metadata-state",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-metadata-state"),
    ),
    RouteEntry::with_aliases(
        "physical.authority",
        RouteMethod::Get,
        "/physical/authority",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/authority"),
    ),
    RouteEntry::with_aliases(
        "physical.native_state",
        RouteMethod::Get,
        "/physical/native-state",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-state"),
    ),
    RouteEntry::with_aliases(
        "physical.native_vector_artifacts",
        RouteMethod::Get,
        "/physical/native-vector-artifacts",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-vector-artifacts"),
    ),
    RouteEntry::with_aliases(
        "physical.native_vector_artifacts.inspect",
        RouteMethod::Get,
        "/physical/native-vector-artifacts/inspect",
        physical_aliases!(
            RouteMethod::Get,
            "/v1/ops/physical/native-vector-artifacts/inspect"
        ),
    ),
    RouteEntry::with_aliases(
        "physical.native_header.repair_policy",
        RouteMethod::Get,
        "/physical/native-header/repair-policy",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/native-header/repair-policy"),
    ),
    RouteEntry::with_aliases(
        "physical.native_header.repair",
        RouteMethod::Post,
        "/physical/native-header/repair",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/native-header/repair"),
    ),
    RouteEntry::with_aliases(
        "physical.metadata.rebuild",
        RouteMethod::Post,
        "/physical/metadata/rebuild",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/metadata/rebuild"),
    ),
    RouteEntry::with_aliases(
        "physical.native_state.repair",
        RouteMethod::Post,
        "/physical/native-state/repair",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/native-state/repair"),
    ),
    RouteEntry::with_aliases(
        "physical.native_vector_artifacts.warmup",
        RouteMethod::Post,
        "/physical/native-vector-artifacts/warmup",
        physical_aliases!(
            RouteMethod::Post,
            "/v1/ops/physical/native-vector-artifacts/warmup"
        ),
    ),
    RouteEntry::with_aliases(
        "physical.collections.vector_artifacts.inspect",
        RouteMethod::Get,
        "/collections/:collection/native-vector-artifacts/inspect",
        physical_aliases!(
            RouteMethod::Get,
            "/v1/ops/physical/collections/:collection/native-vector-artifacts/inspect"
        ),
    ),
    RouteEntry::with_aliases(
        "physical.collections.vector_artifacts.warmup",
        RouteMethod::Post,
        "/collections/:collection/native-vector-artifacts/warmup",
        physical_aliases!(
            RouteMethod::Post,
            "/v1/ops/physical/collections/:collection/native-vector-artifacts/warmup"
        ),
    ),
    RouteEntry::with_aliases(
        "physical.manifest",
        RouteMethod::Get,
        "/manifest",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/manifest"),
    ),
    RouteEntry::with_aliases(
        "physical.roots",
        RouteMethod::Get,
        "/roots",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/roots"),
    ),
    RouteEntry::with_aliases(
        "physical.snapshots",
        RouteMethod::Get,
        "/snapshots",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/snapshots"),
    ),
    RouteEntry::with_aliases(
        "physical.exports",
        RouteMethod::Get,
        "/exports",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/exports"),
    ),
    RouteEntry::with_aliases(
        "physical.indexes",
        RouteMethod::Get,
        "/indexes",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/indexes"),
    ),
    RouteEntry::with_aliases(
        "physical.stats",
        RouteMethod::Get,
        "/stats",
        physical_aliases!(RouteMethod::Get, "/v1/ops/physical/stats"),
    ),
    RouteEntry::with_aliases(
        "physical.checkpoint",
        RouteMethod::Post,
        "/checkpoint",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/checkpoint"),
    ),
    RouteEntry::with_aliases(
        "physical.snapshot.create",
        RouteMethod::Post,
        "/snapshot",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/snapshots"),
    ),
    RouteEntry::with_aliases(
        "physical.export.create",
        RouteMethod::Post,
        "/export",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/exports"),
    ),
    RouteEntry::with_aliases(
        "physical.indexes.rebuild",
        RouteMethod::Post,
        "/indexes/rebuild",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/indexes/rebuild"),
    ),
    RouteEntry::with_aliases(
        "physical.retention.apply",
        RouteMethod::Post,
        "/retention/apply",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/retention/apply"),
    ),
    RouteEntry::with_aliases(
        "physical.maintenance",
        RouteMethod::Post,
        "/maintenance",
        physical_aliases!(RouteMethod::Post, "/v1/ops/physical/maintenance"),
    ),
    RouteEntry::with_aliases(
        "physical.collections.indexes",
        RouteMethod::Get,
        "/collections/:collection/indexes",
        physical_aliases!(
            RouteMethod::Get,
            "/v1/ops/physical/collections/:collection/indexes"
        ),
    ),
    RouteEntry::with_aliases(
        "physical.collections.indexes.rebuild",
        RouteMethod::Post,
        "/collections/:collection/indexes/rebuild",
        physical_aliases!(
            RouteMethod::Post,
            "/v1/ops/physical/collections/:collection/indexes/rebuild"
        ),
    ),
];

pub(crate) fn register(registry: &mut RouteRegistry) {
    registry.routes(PHYSICAL_USER, PHYSICAL_ROUTES);
}