Coverage for node / src / stigmem_node / routes / wellknown.py: 100%
16 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-25 01:49 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-25 01:49 +0000
1"""Node metadata endpoint — Spec-03-HTTP-API /.well-known/stigmem."""
3from __future__ import annotations
5from fastapi import APIRouter
7from ..db import get_or_create_node_id
8from ..settings import settings as settings
10router = APIRouter(tags=["discovery"])
12_NAMESPACES = [
13 "stigmem:",
14 "rel:",
15 "memory:",
16 "intent:",
17 "roadmap:",
18 "preference:",
19 "garden:",
20]
23@router.get("/.well-known/stigmem")
24def node_metadata() -> dict[str, object]:
25 """Return node identity, auth mode, and federation capability advertisement.
27 Covered by Spec-03-HTTP-API.
28 """
29 node_id = get_or_create_node_id()
30 result: dict[str, object] = {
31 "version": "1.0",
32 "node_id": node_id,
33 "node_url": settings.node_url,
34 "auth": "required" if settings.auth_required else "none",
35 "federation": "enabled" if settings.federation_enabled else "disabled",
36 "source_attestation": settings.source_attestation_mode,
37 "namespaces": _NAMESPACES,
38 "spec": "https://github.com/eidetic-labs/stigmem/blob/main/spec/stigmem-spec-v1.0.md",
39 "cors": {
40 "dev_localhost": settings.cors_dev_localhost,
41 "configured": bool(
42 settings.cors_allowed_origins
43 or settings.cors_allowed_origin_regex
44 or settings.cors_dev_localhost
45 ),
46 },
47 }
49 if settings.federation_enabled:
50 from ..federation.peer_token import get_local_pubkey
52 result["federation_pubkey"] = get_local_pubkey()
53 result["federation_version"] = "0.5"
54 result["federation_endpoints"] = {
55 "peers": "/v1/federation/peers",
56 "facts": "/v1/federation/facts",
57 "push": "/v1/federation/facts/push" if settings.federation_push_enabled else None,
58 }
60 return result