Implementerer den første intensjonen i maskinrommet — skrivestien som gjør at frontend kan opprette noder via maskinrommet. Flyten: 1. Valider input (node_kind, visibility, metadata) 2. Generer UUIDv7 (tidssortert) 3. Skriv til SpacetimeDB (instant — frontend ser noden umiddelbart) 4. Spawn async tokio-task for PG-persistering 5. Returner node_id uten å vente på PG Verifisert på server med fire testcaser: 1. Uten auth → 401 2. Ugyldig visibility → 400 med feilmelding 3. Minimal request (tomt body) → 200, node opprettet med defaults 4. Full request → 200, node verifisert i både STDB og PG Også: Dockerfile oppdatert til Rust 1.88 (avhengigheter krevde >1.86), og api_grensesnitt.md oppdatert med endepunktdokumentasjon. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
22 lines
644 B
Docker
22 lines
644 B
Docker
# Maskinrommet — flertrinns Docker-bygg
|
|
# Bygger Rust-binæren i et kompileringssteg, kopierer til minimal runtime.
|
|
|
|
FROM rust:1.88 AS builder
|
|
|
|
WORKDIR /app
|
|
COPY Cargo.toml Cargo.lock* ./
|
|
# Forhåndsbygg avhengigheter (cache-lag)
|
|
RUN mkdir src && echo "fn main() {}" > src/main.rs && cargo build --release && rm -rf src
|
|
|
|
COPY src/ src/
|
|
RUN touch src/main.rs && cargo build --release
|
|
|
|
FROM debian:bookworm-slim
|
|
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder /app/target/release/maskinrommet /usr/local/bin/maskinrommet
|
|
|
|
ENV BIND_ADDR=0.0.0.0:3100
|
|
EXPOSE 3100
|
|
|
|
CMD ["maskinrommet"]
|