This repository is the parent maintenance workspace for keeping AWCMS-Micro aligned with the latest EmDash source.
Analyze https://github.com/emdash-cms/emdash, then update https://github.com/ahliweb/awcms-micro so it stays fully synchronized with EmDash.
awcms-micro is an independent repository. It must not act as a host for other repositories in the product or runtime sense. It should serve as an implementation workspace that adopts EmDash 100% and includes only AWCMS-Micro plugins and templates that follow the AWCMS-Micro standard, without modifying EmDash core.
AWCMS-Micro-specific product development in this maintenance workspace is limited to plugin and template boundaries. Root scripts and root documentation may change to support that workflow, but new product behavior should not be introduced through EmDash core forks or new shared core layers.
This workspace uses three separate versioning and changelog surfaces:
- root maintenance changes for the parent repository live in
VERSION,CHANGELOG.md, and root.awcms-changesets/ - workspace package releases for published EmDash packages like
awcmsmicro-dev/packages/admin/are driven byawcmsmicro-dev/.changeset/ - downstream AWCMS-Micro release-note inputs for
@awcms-micro/*live inawcmsmicro-dev/.awcms-changesets/ - plugin packages under
awcmsmicro-dev/packages/plugins/keep their ownpackage.jsonversion andCHANGELOG.md - template packages under
awcmsmicro-dev/templates/keep their ownpackage.jsonversion andCHANGELOG.md
CHANGELOG.md also carries a workspace snapshot of the current EmDash upstream SHA plus the version and latest changelog entry for every plugin and template in awcmsmicro-dev/.
Keep these flows separate so root maintenance releases do not mix with package releases, while the snapshot stays current.
- The root maintenance workspace is MIT licensed. See
LICENSE. - AWCMS-Micro plugins and templates use the AW Non-Commercial License 1.0 from
https://github.com/ahliweb/aw-non-commercial-licenseunless a package-level license says otherwise. docs/awcms-micro-licensing.mdexplains how the root MIT license and package-level non-commercial license fit together.
emdash-latest/: latest synchronized snapshot of upstream EmDashawcmsmicro-dev/: clone ofemdash-latest/used as the active AWCMS-Micro development workspacedocs/: root-level technical documentation for structure, sync workflow, and implementation rulesscripts/: maintenance scripts for refreshingemdash-latest/and rebuildingawcmsmicro-dev/
flowchart LR
Upstream[Upstream EmDash] --> Latest[emdash-latest]
Latest --> Dev[awcmsmicro-dev]
Dev --> Plugins[AWCMS-Micro plugins]
Dev --> Templates[AWCMS-Micro templates]
Docs[Root docs] --> Rules[Boundaries and workflow]
Scripts[Root scripts] --> Latest
Scripts --> Dev
Rules --> Scripts
Hidden root files such as .gitignore and local-only .env support the parent workspace and are not part of the product structure.
Fresh-clone sync bootstrapping may also store template name and built-in plugin choices in awcmsmicro-dev/.env so local operator decisions stay outside git, and rebuilds preserve both awcmsmicro-dev/.env and awcmsmicro-dev/.env.age when present.
See docs/operator-workflow.md for the continuation and fresh-clone update modes and the fresh-clone prompt details.
- Keep
emdash-latest/as the clean upstream reference tree. - Rebuild
awcmsmicro-dev/fromemdash-latest/before AWCMS-Micro-specific implementation work. - Do not treat this repository as a runtime host for nested products.
- Keep root documentation synchronized with the actual workflow and folder layout.
- For every root-level documentation, script, governance, synchronization, or protected admin branding change, add a root
.awcms-changesets/*.mdentry and runbash scripts/awcms-root-versioning.sh versionsoVERSION,CHANGELOG.md, and the workspace snapshot update automatically. - Work step by step using small, atomic changes.
- When a task is too large, split it into smaller follow-up tasks or GitHub issues.
- If a downstream source tweak must survive sync but does not belong in a plugin or template boundary, encode it as a patch under
awcmsmicro-dev/.awcms-patches/so the rebuild script can reapply it automatically.
GitHub issues in this repository are implementation contracts, not only reminders.
The current standard is documented in:
docs/awcms-micro-github-issue-system.mdDiagram requirements are documented in:
docs/awcms-micro-mermaid-diagram-standard.mdThe standard applies to all AWCMS-Micro project work, including plugins, templates, database/D1, UI/UX, frontend, backend, API, integrations, security, deployment, tests, and documentation.
Sequenced issue title pattern:
[PRODUCT][SEQ-XX][TYPE][PRIORITY] TitleExamples:
[SIKESRA][SEQ-01A][BUG][P0] Fix admin dashboard Open module links to stay inside plugin admin routes
[TEMPLATE-DEFAULT][SEQ-03][UX][P1] Standardize public homepage section layout
[PLUGIN-GALLERY][SEQ-02][API][P1] Add typed gallery media API contract
[CLOUDFLARE][SEQ-02][DEPLOYMENT][P0] Validate D1 and R2 bindings for production deployment
[SECURITY][SEQ-01][P0] Add upload validation baseline for all media-enabled plugins
[DOCS][SEQ-01][DOCS][P1] Add Mermaid diagram standards for PRD, database, UI/UX, integration, and deployment issuesRules:
SEQdefines implementation order, not creation order.P0/P1/P2/P3defines priority and risk.- Suffixes such as
SEQ-01AorSEQ-07Ainsert urgent or dependency issues without renumbering the whole backlog. - Later workflow issues must not start before their earlier foundation, guardrail, integration, and data-boundary issues are ready.
- Mermaid diagrams are required when an issue changes architecture, database, UI/UX flow, frontend-backend integration, security flow, deployment topology, migration, or data preservation.
- When issue order changes, update the root docs and any affected project docs listed in
docs/awcms-micro-github-issue-system.md.
The SIKESRA plugin is an AWCMS-Micro downstream plugin under:
awcmsmicro-dev/packages/plugins/awcms-micro-sikesra/SIKESRA development is tracked through GitHub issues #119 through #143. These issues define the current implementation backlog for plugin identity, admin route safety, UI/UX standards, D1 table isolation, repository layer, frontend-backend-D1 integration, field standards, RBAC/ABAC, EmDash user references, document metadata, import/export, audit, data preservation, custom attributes, and CRUD governance.
Current ordered SIKESRA execution begins with:
#140 plugin identity
#141 admin dashboard route bug fix
#142 admin UI/UX design system
#119 sikesra_ naming policy
#121 prefix validation test
#136 EmDash update/rebuild compatibility
#137 data preservation guardrails
#120 D1 migration framework
#122 D1 repository layer
#143 typed frontend-backend-D1 integration contractSIKESRA must follow these rules:
- keep all SIKESRA-owned logic inside the plugin, templates, docs, scripts, tests, and approved downstream boundaries;
- do not modify EmDash core for SIKESRA-specific behavior;
- use dedicated D1 tables and plugin collections with the
sikesra_prefix; - treat dedicated D1 tables as the production source of truth once the D1 migration issues are implemented;
- use EmDash users as shared identity references, while storing SIKESRA roles, scopes, and ABAC policies in
sikesra_tables; - connect admin UI, API routes, service layer, repository layer, serializers, and D1 tables through typed contracts;
- keep public output aggregate-only and public-safe;
- preserve SIKESRA data across EmDash updates, dependency reinstalls, workspace rebuilds, local template rebuilds, and Cloudflare rebuilds;
- use the SIKESRA governance workflow for any high-impact data lifecycle action.
See docs/awcms-micro-github-issue-system.md, docs/awcms-micro-mermaid-diagram-standard.md, docs/awcms-micro-sikesra-plugin-governance.md, and awcmsmicro-dev/packages/plugins/awcms-micro-sikesra/docs/IMPLEMENTATION_GOVERNANCE.md before changing the SIKESRA plugin.
English (US) is the official repository language for root documentation, root scripts, repository instructions, and AWCMS-Micro-specific repository governance text.
Exception:
emdash-latest/must remain as an upstream-faithful EmDash snapshot and should preserve upstream wording as-is, including non-US spelling when present.awcmsmicro-dev/may mirror upstream wording when it is rebuilt fromemdash-latest/as part of synchronization work.
AWCMS-Micro plugins and templates must use Lingui-compatible gettext PO catalogs for user-facing translation work.
Standard catalog locations:
awcmsmicro-dev/packages/plugins/<plugin-id>/src/locales/en/messages.po
awcmsmicro-dev/packages/plugins/<plugin-id>/src/locales/id/messages.po
awcmsmicro-dev/templates/<template-id>/src/locales/en/messages.po
awcmsmicro-dev/templates/<template-id>/src/locales/id/messages.poEnglish (en) is the source locale. Active plugins and templates must include complete, reviewed Indonesian (id) translations for user-facing labels, navigation, settings, validation text, accessibility text, and public template copy.
Do not add new plugin or template translations only as inline manifest i18n.messages maps or code-level copy objects unless they are temporary compatibility adapters during migration. Keep placeholders such as {error} and XML-style tags such as <0> and </0> unchanged in msgstr values.
The authoritative standard lives in awcmsmicro-dev/docs/awcms-micro/i18n-po-translation-standard.md.
docs/README.mddocs/repository-structure.mddocs/synchronization-workflow.mddocs/implementation-instructions.mddocs/awcms-micro-implementation-boundaries.mddocs/awcms-micro-github-issue-system.mddocs/awcms-micro-mermaid-diagram-standard.mddocs/awcms-micro-documentation-workflow.mddocs/awcms-micro-sikesra-plugin-governance.mddocs/awcms-micro-mobile-services-plugin-standard.mddocs/awcms-admin-branding.mddocs/awcmsmicro-dev-protected-paths.mddocs/repository-assessment.mddocs/decision-records.mddocs/operator-workflow.mddocs/awcms-micro-prd.mddocs/awcms-micro-versioning.mddocs/awcms-micro-root-versioning.mddocs/awcms-micro-versioning-rollout-summary.mddocs/awcms-micro-licensing.mddocs/awcms-micro-d1-mirror-sync.mddocs/upstream-sync/README.mddocs/upstream-sync/ISSUE_CLASSIFICATION_DOWNSTREAM_VS_UPSTREAM.mddocs/upstream-sync/UPSTREAM_PR_PLAN_ADMIN_SIDEBAR_ORDERING.mddocs/deployment/cloudflare.mddocs/backup/gitlab-mirror-setup.mddocs/security/security-baseline.mddocs/security/backup-restore.md
bash scripts/update-emdash-latest.shbash scripts/update-awcmsmicro-dev.shbash scripts/sync-preflight-checklist.sh --mode <continuation|fresh-clone>bash scripts/check-runtime-prereqs.shbash scripts/validate-awcmsmicro-boundaries.shbash scripts/validate-awcmsmicro-dev.shbash scripts/sync-and-validate-awcmsmicro-dev.shnode awcmsmicro-dev/.github/scripts/awcms-version.mjs statusnode awcmsmicro-dev/.github/scripts/awcms-version.mjs versionbash scripts/awcms-root-versioning.sh statusbash scripts/awcms-root-versioning.sh versionnode scripts/awcms-version.mjs statusnode scripts/awcms-version.mjs versionpnpm --dir awcmsmicro-dev d1:mirror:statuspnpm --dir awcmsmicro-dev test:e2e
bash scripts/backup/encrypt-config.sh- Encrypt backup configbash scripts/backup/decrypt-config.sh- Decrypt backup configbash scripts/backup/load-config.sh- Load encrypted backup config and safe local.envoverlaysbash scripts/backup/encrypt-all-env.sh- Encrypt all .env filesbash scripts/backup/encrypt-env.sh- Encrypt .env filesbash scripts/backup/decrypt-env.sh- Decrypt .env filesbash scripts/backup/backup-db.sh- Backup database to R2bash scripts/backup/backup-dotfiles.sh- Backup dotfilesbash scripts/backup/restore-dotfiles.sh- Restore dotfilesbash scripts/backup/recovery-checklist.sh- Disaster recovery guide
Backup scripts load encrypted configuration first and then safely overlay local .env files when present, which lets operator-only values such as GITLAB_PAT stay outside committed config.
See scripts/backup/README.md for full documentation.
The D1 mirror workflow for DBeaver is documented separately in docs/awcms-micro-d1-mirror-sync.md.
- CLA enforcement is not active in this workspace.
- Contributions are governed by repository review, issue tracking, and the standard approval flow used by maintainers.
- Default template:
awcmsmicro-dev/templates/awcms-micro-default/ - Cloudflare template:
awcmsmicro-dev/templates/awcms-micro-default-cloudflare/ - SIKESRA plugin:
awcmsmicro-dev/packages/plugins/awcms-micro-sikesra/ - Docs plugin:
awcmsmicro-dev/packages/plugins/awcms-micro-docs/ - Gallery plugin:
awcmsmicro-dev/packages/plugins/awcms-micro-gallery/ - Reserved Cloudflare demo boundary:
awcmsmicro-dev/demos/awcms-micro-cloudflare/ - Reserved docs boundary:
awcmsmicro-dev/docs/awcms-micro/ - Reserved E2E boundary:
awcmsmicro-dev/e2e/awcms-micro/ - Reserved AWCMS changesets boundary:
awcmsmicro-dev/.awcms-changesets/ - Preserved workspace package-release boundary:
awcmsmicro-dev/.changeset/ - Preserved workflow boundary:
awcmsmicro-dev/.github/workflows/ - Preserved workflow scripts boundary:
awcmsmicro-dev/.github/scripts/ - Preserved Dependabot config:
awcmsmicro-dev/.github/dependabot.yml - Preserved dev-workspace agent guidance:
awcmsmicro-dev/AGENTS.md - Downstream patch overlay:
awcmsmicro-dev/.awcms-patches/ - Approved implementation boundaries:
docs/awcms-micro-implementation-boundaries.md - Protected implementation boundary list:
scripts/awcmsmicro-dev-protected-paths.txt - Upstream sync tracking:
docs/upstream-sync/ - Deployment guidance:
docs/deployment/ - Security and compliance baselines:
docs/security/
- Refresh
emdash-latest/from upstream EmDash. - Rebuild
awcmsmicro-dev/fromemdash-latest/and let the rebuild script reapply any downstream patch overlays fromawcmsmicro-dev/.awcms-patches/. - Validate
awcmsmicro-dev/withbash scripts/validate-awcmsmicro-dev.sh. - Implement AWCMS-Micro-specific product work only in approved plugin and template boundaries inside
awcmsmicro-dev/.
flowchart TD
Analyze[Analyze upstream changes] --> Refresh[Refresh emdash-latest]
Refresh --> Rebuild[Rebuild awcmsmicro-dev]
Rebuild --> Restore[Restore protected AWCMS-Micro paths]
Restore --> Patches[Replay downstream patches]
Patches --> Validate[Validate boundaries and workspace]
Validate --> Implement[Implement only in approved boundaries]
- Prepare
.awcms-changesets/entries when AWCMS plugins or templates need downstream version bumps. - Update root documentation when structure or process changes.
During rebuilds, bash scripts/update-awcmsmicro-dev.sh preserves only the explicitly approved AWCMS-Micro paths listed in scripts/awcmsmicro-dev-protected-paths.txt and governed by docs/awcms-micro-implementation-boundaries.md, including awcmsmicro-dev/.changeset/ for workspace package-release metadata.