cross-domain slices 2-3: events + shop peers, full workflow operable from the web UI
The whole vision, clickable end-to-end across THREE fed-sx peers (blog / events / shop), each a lib/host instance with SX_DOMAIN-selected types + behaviors. - EVENTS peer: a 'calendar' type (on-allocate → real allocated relation, via the driver now PERFORMING relate effects) + an 'event' type. /calendars UI: allocated posts, scheduled events (each with its featured post + a Buy-ticket button + sold count), and a Schedule-an-event form. host/blog-new-event schedules an event on main, optionally featuring an allocated post. - SHOP peer: an 'order' type. POST /order?event= creates an order (is-a order, related to the event) → 'order:<id>'. Replaces the Python shop service. - BUY: events POSTs a cross-domain order to shop (host/blog--http-order), then links event--sold--> order. host/blog--out-raw reads cross-domain edges (host/blog-out filters to local slugs, which would drop federated refs — the bug that hid allocated posts + sold counts). - BLOG: every post page shows an 'Allocate to a calendar' form. - serve.sh: SX_DOMAIN gates blog/events/shop seeds; SX_EVENTS_BASE / SX_SHOP_BASE wire the chain. docker-compose: sx_events + sx_shop peers (own stores, shared fed secret, externalnet-ready). LIVE, all via the browser: allocate 'welcome' on blog → events /calendars shows it → schedule 'Summer Gig' featuring welcome → Buy ticket → shop order → tickets sold increments. blog 218/218. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -108,6 +108,8 @@ services:
|
||||
SX_ACTOR: "events.rose-ash.com"
|
||||
SX_SELF_URL: "http://sx_events:8000"
|
||||
SX_FED_SECRET: "rose-ash-fed-2026-shared-a3f9"
|
||||
# Cross-domain: where to place ticket orders (the shop peer).
|
||||
SX_SHOP_BASE: "http://sx_shop:8000"
|
||||
volumes:
|
||||
- ./spec:/app/spec:ro
|
||||
- ./lib:/app/lib:ro
|
||||
@@ -122,6 +124,41 @@ services:
|
||||
- default
|
||||
restart: unless-stopped
|
||||
|
||||
# The SHOP domain — a fed-sx peer running lib/host with SX_DOMAIN=shop (an "order" type). Events
|
||||
# places ticket orders here (POST /order). Replaces the Python shop/market service.
|
||||
sx_shop:
|
||||
image: registry.rose-ash.com:5000/sx_docs:latest
|
||||
container_name: sx-dev-sx_shop-1
|
||||
entrypoint: ["bash", "/app/lib/host/serve.sh"]
|
||||
working_dir: /app
|
||||
environment:
|
||||
SX_PROJECT_DIR: /app
|
||||
SX_SERVER: /app/bin/sx_server
|
||||
HOST_PORT: "8000"
|
||||
SX_HTTP_HOST: "0.0.0.0"
|
||||
SX_PERSIST_DIR: /data/persist
|
||||
SX_ADMIN_USER: admin
|
||||
SX_ADMIN_PASSWORD: "sx-shop-camper-2026"
|
||||
SX_SESSION_SECRET: "shop-sess-9d2e1f"
|
||||
SX_SERVING_JIT: "1"
|
||||
OCAMLRUNPARAM: "b"
|
||||
SX_DOMAIN: "shop"
|
||||
SX_ACTOR: "shop.rose-ash.com"
|
||||
SX_SELF_URL: "http://sx_shop:8000"
|
||||
SX_FED_SECRET: "rose-ash-fed-2026-shared-a3f9"
|
||||
volumes:
|
||||
- ./spec:/app/spec:ro
|
||||
- ./lib:/app/lib:ro
|
||||
- ./next:/app/next:ro
|
||||
- ./web:/app/web:ro
|
||||
- ./shared/static:/app/shared/static:ro
|
||||
- ./hosts/ocaml/_build/default/bin/sx_server.exe:/app/bin/sx_server:ro
|
||||
- /root/sx-shop-persist:/data/persist
|
||||
networks:
|
||||
- externalnet
|
||||
- default
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
externalnet:
|
||||
external: true
|
||||
|
||||
Reference in New Issue
Block a user