All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m56s
Remove stale submodule references, port numbers, and Running sections. Add fragment composition details. Create READMEs for federation and account. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
# Blog App (Coop)
|
|
|
|
Content management, Ghost CMS sync, navigation, and the prose editor for the Rose Ash cooperative platform. Runs database migrations on startup and serves as the primary content hub.
|
|
|
|
## Structure
|
|
|
|
```
|
|
app.py # Application factory (create_base_app + blueprints)
|
|
path_setup.py # Adds project root + app dir to sys.path
|
|
entrypoint.sh # Container entrypoint (migrations, Redis flush, start)
|
|
bp/
|
|
blog/ # Post listing, Ghost CMS sync, webhooks
|
|
post/ # Single post view and admin
|
|
admin/ # Settings admin interface
|
|
menu_items/ # Navigation menu management
|
|
snippets/ # Reusable content snippets
|
|
fragments/ # nav-tree fragment for cross-app navigation
|
|
models/ # Re-export stubs pointing to shared/models/
|
|
services/ # register_domain_services() — wires blog + calendar + market + cart
|
|
templates/ # Blog-specific templates (override shared/)
|
|
```
|
|
|
|
## Cross-domain communication
|
|
|
|
All inter-app communication uses typed service contracts (no HTTP APIs):
|
|
|
|
- `services.calendar.*` — calendar/entry queries via CalendarService protocol
|
|
- `services.market.*` — marketplace queries via MarketService protocol
|
|
- `services.cart.*` — cart summary via CartService protocol
|
|
- `services.federation.*` — AP publishing via FederationService protocol
|
|
|
|
## Fragments served
|
|
|
|
- **nav-tree** — site navigation tree, fetched by all other apps
|
|
|
|
## Fragments consumed
|
|
|
|
- **cart-mini** (from cart) — cart icon + badge
|
|
- **auth-menu** (from account) — sign-in / user menu
|
|
- **container-nav** (from events, market) — sidebar widgets
|
|
- **container-cards** (from events) — event cards on listing pages
|