Skip to content

Registry HTTP

Every route registered on the axum router in memstead-registry. The route inventory is lifted by static scan of the router declaration (memstead-registry/src/lib.rs); each per-route section also surfaces the handler’s live signature and the ApiError variants its body emits. A machine-readable OpenAPI 3.1.0 document covering the same paths is published at /openapi.json. Full request / response JSON schemas would require utoipa annotations on every handler; today the contract is the signature, the path inventory, and the per-route error variants.

Routes: 9

Handler: handlers::static_assets::get_root

Signature:

pub async fn get_root() -> ApiResult<Response>

Errors: (no ApiError variants found in handler body)

Handler: handlers::admin::post_denylist

Signature:

pub async fn post_denylist(
State(state): State<AppState>,
headers: HeaderMap,
Json(req): Json<DenylistRequest>,
) -> ApiResult<impl IntoResponse>

ApiError variants emitted: Forbidden, Internal, InvalidContentHash

Handler: handlers::index::get_index

Signature:

pub async fn get_index(State(state): State<AppState>) -> ApiResult<Json<IndexResponse>>

ApiError variants emitted: Internal

Handler: handlers::publish::post_publish

Signature:

pub async fn post_publish(
State(state): State<AppState>,
req: Request<Body>,
) -> ApiResult<impl IntoResponse>

ApiError variants emitted: BodyEmpty, BodyTooLarge, ContentBlocked, Internal, RateLimited, TermsNotAccepted, Tombstoned, Validation, ValidatorTimeout, VersionExists

Handler: handlers::unpublish::delete_unpublish

Signature:

pub async fn delete_unpublish(
State(state): State<AppState>,
Path((scope, name_ext)): Path<(String, String)>,
headers: HeaderMap,
) -> ApiResult<impl IntoResponse>

ApiError variants emitted: Forbidden, Internal, NotFound

Handler: handlers::artifacts::get_artifact

Signature:

pub async fn get_artifact(
State(state): State<AppState>,
Path((scope, name_ext)): Path<(String, String)>,
) -> ApiResult<Response>

ApiError variants emitted: NotFound

GET /api/mem/{scope}/{name}/{version_ext}

Section titled “GET /api/mem/{scope}/{name}/{version_ext} ”

Handler: handlers::artifacts::get_artifact_versioned

Signature:

pub async fn get_artifact_versioned(
State(state): State<AppState>,
Path((scope, name, version_ext)): Path<(String, String, String)>,
) -> ApiResult<Response>

ApiError variants emitted: NotFound

Handler: handlers::health::get_healthz

Signature:

pub async fn get_healthz(State(state): State<AppState>) -> impl IntoResponse

Errors: (no ApiError variants found in handler body)

Handler: handlers::mem_page::get_mem_page

Signature:

pub async fn get_mem_page(
State(state): State<AppState>,
Path((scope, name)): Path<(String, String)>,
) -> ApiResult<Response>

ApiError variants emitted: Internal