Page:
client-repos
Pages
ARCHITECTURE
AUTO_CREATE_ORG_PROJECTS
CLI_AUTOMATION
DEPLOY_SCRIPTS
DOLIBARR_MODULE_IDS
DRY_RUN_PATTERN
Documentation-Standards.-.-
Documentation-Standards.-
File-Header-Standards
Home
JOOMLA_SYNC
LEGAL_DOC_GENERATOR_WEB_README
MCP-Servers.-.-.
MCP-Servers
MINIFICATION
MONITORING_SCRIPTS
NEW_SCRIPTS
QUICKSTART_ORG_PROJECTS
SITE_MONITORING
WIKI_STANDARDS
WORKFLOW_STANDARDS
api-automation-index.-
api-automation-index
api-definitions-default-index.-
api-definitions-default-index
api-definitions-sync-index.-
api-definitions-sync-index
api-deploy-index.-
api-deploy-index
api-fix-index.-
api-fix-index
api-index.-
api-index
api-maintenance-index.-
api-maintenance-index
api-plugin-index.-
api-plugin-index
api-tests-index.-
api-tests-index
api-tests-sample-index.-
api-tests-sample-index
api-validate-index.-
api-validate-index
automation-README.-
automation-README
automation-branch-version-automation.-
automation-branch-version-automation
automation-push-files.-
automation-push-files
automation-repo-cleanup.-
automation-repo-cleanup
client-repos.-.-
client-repos
standards-mokostandards-file-spec.-
standards-mokostandards-file-spec
templates-client-waas
templates-dolibarr
templates-generic
templates-mcp
workflows-README.-
workflows-README
workflows-auto-release.-
workflows-auto-release
workflows-branch-protection.-
workflows-branch-protection
workflows-build-release.-
workflows-build-release
workflows-cascade-dev.-
workflows-cascade-dev
workflows-changelog-management.-
workflows-changelog-management
workflows-demo-deployment.-
workflows-demo-deployment
workflows-dev-branch-tracking.-
workflows-dev-branch-tracking
workflows-dev-deployment.-
workflows-dev-deployment
workflows-index.-
workflows-index
workflows-release-system.-
workflows-release-system
workflows-renovate.-
workflows-renovate
workflows-reusable-workflows.-
workflows-reusable-workflows
workflows-rs-deployment.-
workflows-rs-deployment
workflows-secret-scanning.-
workflows-secret-scanning
workflows-shared-workflows.-
workflows-shared-workflows
workflows-standards-compliance.-
workflows-standards-compliance
workflows-static-analysis.-
workflows-static-analysis
workflows-sub-issue-management.-
workflows-sub-issue-management
workflows-update-server.-
workflows-update-server
workflows-workflow-architecture.-
workflows-workflow-architecture
Clone
3
client-repos
Jonathan Miller edited this page 2026-05-20 01:26:21 +00:00
Client Repository Standards
Overview
Client repos (client-*) contain Joomla site customizations for individual clients -- templates, overrides, custom CSS, module configurations, and deployment scripts. They follow the Joomla workflow profile but have additional rules around privacy, branding, and deployment.
Note
: Client repos are sites, not distributable Joomla extensions. They do not have
updates.xmlor an update-server workflow.
Naming Convention
client-{clientname}
- Lowercase, hyphenated client identifier
- No version numbers in the repo name
- Examples:
client-clarksvillefurs,client-kiddieland,client-vexcreations
Repository Structure
client-{name}/
├── .github/ # Workflows, CLAUDE.md, CODEOWNERS
│ ├── workflows/ # Standard Joomla workflows (from template)
│ ├── CLAUDE.md # AI assistant context for this client
│ └── CODEOWNERS # jmiller owns all files
├── src/ # Joomla extension source
│ ├── templates/ # Template overrides
│ ├── modules/ # Custom modules
│ ├── plugins/ # Custom plugins
│ └── media/ # CSS, JS, images
├── docs/ # Client-specific documentation
│ └── INSTALLATION.md # Deployment instructions
├── scripts/ # Build and deployment scripts
├── composer.json # Dependencies
├── CHANGELOG.md # Version history
├── README.md # Client overview (no sensitive details)
├── LICENSE # GPL-3.0-or-later
└── Makefile # Build targets
Privacy Rules
Client repos are private by default. These rules are non-negotiable:
| Rule | Detail |
|---|---|
| No client credentials | Passwords, API keys, FTP credentials, database passwords go in environment variables or secure secrets, never in code or config files |
| No PII | No customer names, emails, addresses, phone numbers in code or comments |
| No client-specific hostnames | Use environment variables or sftp-config.json.template patterns with placeholders |
| README.md is generic | Describes the extension type, not the client's business details |
| CLAUDE.md may reference client | By name for AI context, but must not include credentials |
Workflows
Client repos use the Joomla workflow profile from moko-platform-Template-Client (10 workflows):
| Workflow | Purpose |
|---|---|
auto-release.yml |
Create GitHub Release on main merge |
pre-release.yml |
Pre-release builds for dev/rc branches |
ci-joomla.yml |
Joomla manifest validation, XML lint |
pr-check.yml |
Pull request validation |
deploy-manual.yml |
Manual FTP deploy for testing |
repo-health.yml |
Repository health checks |
security-audit.yml |
Security scanning |
notify.yml |
Notifications for workflow events |
cleanup.yml |
Clean up stale branches/artifacts |
sync-media.yml |
Synchronize media assets |
Release Tags
Standard 5-tag system applies:
| Tag | Purpose |
|---|---|
development |
Dev builds |
alpha |
Internal testing |
beta |
Client preview / UAT |
release-candidate |
Final QA before production |
stable |
Production release |
Deployment
Client sites are deployed via:
- Manual FTP -- via
deploy-manual.ymlworkflow dispatch (for dev/staging) - Direct install -- download ZIP from GitHub Release and install via Joomla admin
Creating a New Client Repo
- Create from template:
moko-platform-Template-Client - Name it
client-{clientname}(lowercase, hyphenated) - Set repo to private
- Set up secrets:
GA_TOKEN,GH_TOKEN - Configure push mirror to GitHub
- Apply branch protection on
main - Update
README.md,composer.json,CLAUDE.mdwith client-specific context - Run initial bulk sync to pull latest standards
Differences from Standard Joomla Repos
| Aspect | Client Repos | Standard Joomla Repos |
|---|---|---|
| Visibility | Always private | Can be public |
| Template | moko-platform-Template-Client |
Template-Joomla-* |
| updates.xml | None (sites, not extensions) | Included |
| SFTP config | sftp-config.json.template with placeholders |
Direct config |
| Branding | Client-specific | Moko Consulting |
| Deployment | Manual FTP + direct install | Joomla updater |
Related
- WORKFLOW_STANDARDS -- CI/CD workflow conventions
- ARCHITECTURE -- Platform scripts architecture
- JOOMLA_SYNC -- Joomla extension sync between servers
Repo: moko-platform · moko-platform wiki
| Field | Value |
|---|---|
| Minimum Version | 04.07.00 |
| Platform | joomla |
| Applies To | Client repositories |
| Revision | Date | Author | Description |
|---|---|---|---|
| 1.0 | 2026-05-09 | Moko Consulting | Initial version |