-
Notifications
You must be signed in to change notification settings - Fork 2
Release v1.0.20 β hkm module command, http package dependency, Pageflow stage consolidation, OSS/CI hardening #35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from all commits
Commits
Show all changes
61 commits
Select commit
Hold shift + click to select a range
eed6473
docs: rewrite README as a full framework guide (concepts, lifecycle, β¦
hakeemRash 82bc557
build(bundle): pin bundle dependencies to the PHP 8.4 series
Alshatri 7f3888a
Merge branch 'main'
hakeemRash 195b7e7
ci(release): auto-tag new CHANGELOG version on merge to main -> triggβ¦
hakeemRash d86341b
ci(release): auto-release on merge to main via workflow_call (no PAT)β¦
hakeemRash 1218ab1
docs(readme): document master->main branch model and automatic CHANGEβ¦
hakeemRash a68ce88
ci(security): CODEOWNERS + main branch protection script (required reβ¦
hakeemRash a796202
feat(edge): host-aware web-server config plugin (nginx SNI stream splβ¦
hakeemRash dc335b4
feat(edge): classify .local/.test as local domains β exclude from serβ¦
hakeemRash 9af3885
fix(edge): resolve project registry from global kernel home (not projβ¦
hakeemRash 87ccd90
feat(edge): project-aware config β per-project vhosts (docroot app/puβ¦
hakeemRash c84409c
feat(edge): default commands to the CURRENT project (base_path/proj.jβ¦
hakeemRash 0533c81
feat(edge): auto-resolve PHP-FPM socket to match the CLI PHP version β¦
hakeemRash f2bef6e
feat(userconfig): resolve config path for non-root sudo users
hakeemRash 5514c5c
Adopt masterβmain branch model, automated releases, and main branch pβ¦
hakeemRash 9aad6f6
feat(edge): enhance hosts management with dev mode checks and force oβ¦
hakeemRash ad7ec07
chore(release): v1.0.13 β Edge plugin, PSP_PROJECTS_DIR export, frontβ¦
hakeemRash e6bf46d
Merge remote-tracking branch 'origin/main'
hakeemRash da9573c
chore(release): bump to v1.0.14 (v1.0.13 tag already exists from an eβ¦
hakeemRash 2960acf
chore(release): reclaim v1.0.13 (stale mis-tagged v1.0.13 release/tagβ¦
hakeemRash eb31d1e
Release v1.0.13 β Edge plugin + launcher/frontend fixes (#24)
hakeemRash e37a293
chore(release): v1.0.14
hakeemRash 59f925a
chore: align CHANGELOG to released v1.0.13 (drop phantom 1.0.14)
hakeemRash 310c874
fix(edge): serve local .local/.test domains in dev mode (--dev)
hakeemRash ef0027f
Merge origin/main into master (squash-merge of #24; master already coβ¦
hakeemRash 170f48c
Release v1.0.15 β Edge serves local domains in dev (#25)
hakeemRash 4436575
Merge branch 'main' of github.com:AlfaCode-Team/php-service-platform
Alshatri 53696ad
Merge branch 'master' of github.com:AlfaCode-Team/php-service-platform
Alshatri 57b5831
feat(edge): TLS modes, APP_ENV cache profiles and OpenSwoole runtime β¦
hakeemRash 0a3f640
Merge origin/main into master (PR #26: Edge TLS modes, APP_ENV cache β¦
hakeemRash af463d0
feat(tenancy): add control plane support and enhance tenant migrationβ¦
hakeemRash f704871
feat(cli): hkm discover β find and register projects on disk
hakeemRash 92b575e
Release v1.0.17 β hkm discover: find & register projects on disk (#27)
hakeemRash fffc4d8
feat(cli): plugins recover + discover restores runtime dirs
hakeemRash 4a33ef4
Merge remote-tracking branch 'origin/main'
hakeemRash b9fb1dd
Release v1.0.18 β plugins recover + discover restores runtime dirs (#28)
hakeemRash d4b58cb
feat(edge): stream reuse/merge, force strategy, security hardening; rβ¦
hakeemRash f804f42
Merge remote-tracking branch 'origin/main'
hakeemRash 11f319d
test(edge): make nginx -t check portable across nginx versions
hakeemRash 8875546
test(edge): make nginx -t syntax check runnable as non-root in CI
hakeemRash 624dd4f
chore: auto-wire git hooks to strip AI co-author trailers
hakeemRash b921a72
chore: drop pulse-engine + module-template modules, patch guzzle, wirβ¦
hakeemRash b5b2d0e
feat: add issue and pull request templates, contributing guide, securβ¦
hakeemRash 6d8203a
feat: add issue templates for documentation and plugin proposals
hakeemRash ed45d09
Merge branch 'main' of github.com:AlfaCode-Team/php-service-platform
hakeemRash d1c5543
Merge branch 'main' of github.com:AlfaCode-Team/php-service-platform
hakeemRash 6b397df
Merge branch 'main' of github.com:AlfaCode-Team/php-service-platform
hakeemRash 5537430
ci: add CodeQL (JS/TS + Actions) and PHP analysis (composer audit, Seβ¦
hakeemRash 6b846c9
ci: drop custom CodeQL workflow β repo uses CodeQL default setup (avoβ¦
hakeemRash e7818c3
ci(phpstan): add level-5 config + baseline, make analysis a blocking β¦
hakeemRash 320e924
fix: repair MigrateListCommand parent + OutboxWriter port contract
hakeemRash fe4bfc2
ci: fix PHPStan (ignore optional Swoole/OpenSwoole coroutine calls) +β¦
hakeemRash 248d9f9
Merge branch 'main' of github.com:AlfaCode-Team/php-service-platform
hakeemRash b1d0451
chore(oss): open-source readiness β license, composer metadata, .env.β¦
hakeemRash 45ce8a5
chore: add craftdevscommunity as code owner (required PR reviewers foβ¦
hakeemRash 1da40e9
Refactor Pageflow stages and consolidate functionality
hakeemRash 5b6b2fc
Depend on alfacode-team/http ^1.0 (dev-master in monorepo, v1.0.0 forβ¦
hakeemRash 36852f6
feat(module): add `hkm module` command for managing first-party kerneβ¦
hakeemRash 7573b25
chore: update subproject commit for http module
hakeemRash caad9ea
Point http submodule at latest master (dev-master, v1.0.0 release forβ¦
hakeemRash b13cfa3
refactor(PageflowResponderTest): consolidate stage classes into a sinβ¦
hakeemRash File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,119 @@ | ||
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | ||
| # AlfacodeTeam PhpServicePlatform β example environment | ||
| # | ||
| # Copy to `.env` and fill in real values: cp .env.example .env | ||
| # Read config in first-party code via env(), never getenv(). | ||
| # This file covers the CORE + commonly-used plugin settings. Each plugin | ||
| # documents its full env surface in plugins/<Name>/README.md. | ||
| # Run `hkm doctor` to verify your PHP runtime and required extensions. | ||
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | ||
|
|
||
| # ββ Application ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | ||
| APP_ENV=production # local | production | ||
| APP_DEBUG=false # NEVER true in production (leaks source/traces) | ||
| APP_LOCALE=en | ||
| APP_FALLBACK_LOCALE=en | ||
| APP_LOCALES=en # comma-separated negotiation set (e.g. en,fr,es) | ||
|
|
||
| # 32+ byte secret used for app crypto, CSRF token signing, cookie encryption. | ||
| # Generate one: php -r "echo base64_encode(random_bytes(32)).PHP_EOL;" | ||
| APP_KEY= | ||
| # APP_KEY_PREVIOUS= # set during key rotation to decrypt old data | ||
|
|
||
| # ββ Database (DatabasePort) ββββββββββββββββββββββββββββββββββββββββββββββββββ | ||
| DB_DRIVER=mysql # mysql | pgsql | sqlite | sqlsrv | ||
| DB_HOST=127.0.0.1 | ||
| DB_PORT=3306 | ||
| DB_DATABASE=app | ||
| DB_USERNAME=root | ||
| DB_PASSWORD= | ||
| DB_CHARSET=utf8mb4 | ||
| # Connection pool (OpenSwoole only; ignored under PHP-FPM): | ||
| DB_POOL_ENABLED=false | ||
| DB_POOL_MIN=1 | ||
| DB_POOL_MAX=10 | ||
|
|
||
| # ββ Cache & Queue β Redis (CachePort / QueuePort) ββββββββββββββββββββββββββββ | ||
| REDIS_HOST=127.0.0.1 | ||
| REDIS_PORT=6379 | ||
| REDIS_PASSWORD= | ||
| REDIS_DB=0 | ||
| REDIS_PREFIX=hkm: | ||
| REDIS_OVERRIDE=false # true = use Redis even if another cache is bound | ||
|
|
||
| # ββ Sessions (Session plugin) ββββββββββββββββββββββββββββββββββββββββββββββββ | ||
| SESSION_DRIVER=cookie # cookie | file | array | ||
| SESSION_LIFETIME=43200 # seconds (12h) β MUST match CSRF lifetime below | ||
| SESSION_IDLE_TIMEOUT=7200 | ||
| SESSION_COOKIE=hkm_session | ||
| SESSION_SECURE=true # send only over HTTPS | ||
| SESSION_SAMESITE=lax # lax | strict | none | ||
| SESSION_SIGNING_KEY= # defaults to APP_KEY when empty | ||
|
|
||
| # ββ Authentication / JWT (Auth plugin) βββββββββββββββββββββββββββββββββββββββ | ||
| JWT_ALGO=HS256 # HS256 | RS256 | ES256 | PS256 | ||
| JWT_SECRET= # required for HS*; use JWT_PRIVATE_KEY(_FILE) for RS/ES/PS | ||
| JWT_ISSUER=hkm | ||
| JWT_AUDIENCE=hkm | ||
| # JWT_PRIVATE_KEY_FILE=/path/to/private.pem | ||
| # JWT_PUBLIC_KEY_FILE=/path/to/public.pem | ||
| AUTH_SESSION_TTL=1209600 # remember-me seconds (14d) | ||
| AUTH_REFRESH_TTL=2592000 # refresh-token seconds (30d) | ||
| HASH_BCRYPT_COST=12 | ||
|
|
||
| # ββ CSRF (kernel CsrfTokenLayer) βββββββββββββββββββββββββββββββββββββββββββββ | ||
| # Lifetime MUST equal SESSION_LIFETIME. The bound cookie must be in | ||
| # COOKIE_ENCRYPT_EXEMPT (the layer reads the RAW cookie at SecurityStage). | ||
| # CSRF secret defaults to APP_KEY. | ||
|
|
||
| # ββ Security filters (SecurityFilters plugin) ββββββββββββββββββββββββββββββββ | ||
| CORS_ALLOWED_ORIGINS=* | ||
| CORS_ALLOWED_METHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS | ||
| CORS_ALLOWED_HEADERS=Content-Type,Authorization,X-CSRF-Token | ||
| CORS_ALLOW_CREDENTIALS=false | ||
| RATE_LIMIT_MAX=60 | ||
| RATE_LIMIT_WINDOW=60 | ||
| # CONTENT_SECURITY_POLICY= | ||
| HSTS_MAX_AGE=31536000 | ||
|
|
||
| # ββ Mail (Mail plugin) βββββββββββββββββββββββββββββββββββββββββββββββββββββββ | ||
| MAIL_TRANSPORT=array # smtp | sendmail | mail | array | log | ||
| MAIL_HOST=127.0.0.1 | ||
| MAIL_PORT=587 | ||
| MAIL_USERNAME= | ||
| MAIL_PASSWORD= | ||
| MAIL_ENCRYPTION=tls # tls | ssl | none | ||
| MAIL_FROM_ADDRESS=no-reply@example.com | ||
| MAIL_FROM_NAME="AlfaCode Platform" | ||
|
|
||
| # ββ Storage (Storage plugin β StoragePort) βββββββββββββββββββββββββββββββββββ | ||
| STORAGE_DRIVER=local # local | s3 | ||
| STORAGE_ROOT=userdata/storage | ||
| # S3 / S3-compatible: | ||
| # STORAGE_S3_KEY= | ||
| # STORAGE_S3_SECRET= | ||
| # STORAGE_S3_REGION=us-east-1 | ||
| # STORAGE_S3_BUCKET= | ||
| # STORAGE_S3_ENDPOINT= | ||
| # STORAGE_S3_PATH_STYLE=false | ||
|
|
||
| # ββ Outbound HTTP (HttpClient plugin β HttpClientPort) βββββββββββββββββββββββ | ||
| HTTP_CLIENT_TIMEOUT=30 | ||
| HTTP_CLIENT_CONNECT_TIMEOUT=10 | ||
| HTTP_CLIENT_RETRY=2 | ||
| HTTP_CLIENT_MAX_RESPONSE_BYTES=33554432 # 32 MiB OOM guard | ||
|
|
||
| # ββ Multi-tenancy (Tenancy plugin β control plane) βββββββββββββββββββββββββββ | ||
| # Only needed when deploying the multi-tenant control plane. | ||
| # TENANCY_MODE=subdomain | ||
| # TENANCY_BASE_DOMAINS=example.com | ||
| # TENANCY_CONTROL_PLANE=admin.example.com | ||
|
|
||
| # ββ Views / Frontend (View + ViteManifest plugins) βββββββββββββββββββββββββββ | ||
| # VIEW_PATHS= # extra template roots, prepended to the cascade | ||
| # VITE_MANIFEST=manifest.json | ||
| # VITE_SURFACE=app | ||
|
|
||
| # ββ SEO / IndexNow (SiteSEO plugin) ββββββββββββββββββββββββββββββββββββββββββ | ||
| # INDEXNOW_KEY= # required to submit URLs to search engines | ||
| # INDEXNOW_LIVE=false # true = real submit, else enqueued dry run | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,5 @@ | ||
| # Every change requires review from a repo owner. | ||
| * @hakeemRash @Alshatri | ||
| # Code owners β required reviewers for every change into `main`. | ||
| # A PR needs approval from at least one of these owners (branch protection | ||
| # enforces 1 code-owner review). Authors cannot approve their own PR, so keep | ||
| # more than one owner listed. | ||
| * @hakeemRash @Alshatri @craftdevscommunity | ||
|
hakeemRash marked this conversation as resolved.
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.