Files
website-enchun-mgr/apps/frontend
pkupuk 7fd73e0e3d Implement Sprint 1 stories: collections, RBAC, audit logging, load testing
Complete 6 Sprint 1 stories for Epic 1 web migration infrastructure.

Portfolio Collection:
- Add 7 fields: title, slug, url, image, description, websiteType, tags
- Configure R2 storage and authenticated access control

Categories Collection:
- Add nameEn, order, textColor, backgroundColor fields
- Add color picker UI configuration

Posts Collection:
- Add excerpt with 200 char limit and ogImage for social sharing
- Add showInFooter checkbox and status select (draft/review/published)

Role-Based Access Control:
- Add role field to Users collection (admin/editor)
- Create adminOnly and authenticated access functions
- Apply access rules to Portfolio, Categories, Posts, Users collections

Audit Logging System (NFR9):
- Create Audit collection with timestamps for 90-day retention
- Add auditLogger utility for login/logout/content change tracking
- Add auditChange and auditGlobalChange hooks to all collections and globals
- Add cleanupAuditLogs job with 90-day retention policy

Load Testing Framework (NFR4):
- Add k6 load testing with 3 scripts: public-browsing, admin-operations, api-performance
- Configure targets: p95 < 500ms, error rate < 1%, 100 concurrent users
- Add verification script and comprehensive documentation

Other Changes:
- Remove unused Form blocks
- Add Header/Footer audit hooks
- Regenerate Payload TypeScript types
2026-01-31 17:20:35 +08:00
..
2025-10-13 11:37:20 +08:00

Frontend (Astro)

This package hosts the Astro application for enchun.tw. This is a simple SSG website using Cloudflare Pages.

Development

Choose the appropriate development command based on your needs:

# Standard Astro development (uses .env.local)
pnpm dev

# Cloudflare Pages development (uses dev.vars, simulates production environment)
pnpm dev:pages

Environment Configuration

The application uses Cloudflare Pages with Wrangler for deployment and environment management.

Local Development

  • Astro dev (pnpm dev): Uses .env.local file (variables must be prefixed with PUBLIC_ for client-side access)
  • Pages dev (pnpm dev:pages): Uses dev.vars file, simulates Cloudflare Pages environment
  • API URL: https://enchun-admin.anlstudio.cc

Production

  • Uses wrangler.toml configuration
  • API URL: https://enchun-admin.anlstudio.cc

Environment Variables

  • PUBLIC_PAYLOAD_CMS_URL: Base URL for the Payload CMS API (client-side accessible)
  • PAYLOAD_CMS_API_KEY: API key for Payload CMS authentication (set via Cloudflare dashboard)

Note: Environment variables that need to be accessed in browser/client-side code must be prefixed with PUBLIC_ in Astro.