mpjensen / foxtrot
Foxtrot MVC Framework
Requires
- fakerphp/faker: ^1.24
- firebase/php-jwt: ^7.0
- phpmailer/phpmailer: ^7.0
- symfony/deprecation-contracts: ^3.6
- symfony/intl: ^8.0
- symfony/polyfill-ctype: ^1.33
- symfony/polyfill-mbstring: ^1.33
- twig/intl-extra: ^3.26
- twig/twig: ^3.21
Requires (Dev)
- phpunit/phpunit: ^12.3
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-09-23 14:27:56 UTC
README
This is the template for mpjsoft sites.
the site will be verified by the reciever by using the public key found in App/Keys For each site a new private/public RSA kye must be created and added to the project in App/Keys
The public key must be added to the database that reciever app is connedted to. It must be set in a table called allowed_sites This table must contain 4 fields ´id´ int, ´url´ varchar(255), ´publickey´ text, ´active´ tinyint. The site login procedure will then control if the site is allowed.
https://nextcloud.mpjsoft.com/index.php/s/ryjrn4PniyRBERG
OpenID Connect login
Foxtrot keeps the legacy Waltz JWT login by default. Applications can opt in to standards-based Authorization Code + PKCE login by adding this to their application environment:
AUTH_PROVIDER=oidc
OIDC_ISSUER=https://login.mpjsoft.com
OIDC_CLIENT_ID=your-client-id
OIDC_CLIENT_SECRET=your-client-secret
OIDC_REDIRECT_URI=https://your-app.example/core/clogin/callback
OIDC_SCOPE=openid profile email phone offline_access
OIDC_COOKIE_SECURE=true
Public clients may omit OIDC_CLIENT_SECRET. Set OIDC_COOKIE_SECURE=false only for local HTTP development. The existing /core/clogin/login route redirects to the provider, and /core/clogin/callback establishes the normal Foxtrot base.user and base.loggedin session contract.
When browser-facing and container-internal addresses differ during local Docker development, these optional values can override transport endpoints without changing the ID-token issuer:
OIDC_AUTHORIZATION_ENDPOINT=http://localhost:8081/oauth/authorize
OIDC_REGISTRATION_ENDPOINT=http://localhost:8081/oauth/register
OIDC_ACCOUNT_ENDPOINT=http://localhost:8081/oauth/account
OIDC_PROFILE_ENDPOINT=http://waltz/oauth/profile
OIDC_TOKEN_ENDPOINT=http://waltz/oauth/token
OIDC_JWKS_URI=http://waltz/oauth/jwks
Foxtrot versioning
Foxtrot uses MAJOR.MINOR.RELEASE.BUILD. The first three numbers match the Git
release tag. BUILD increases for every commit and is never reset for a new
release.
Enable the repository-managed commit hook once in each checkout:
bin/foxtrot-version install-hooks
After that, a normal git commit automatically increases and stages
FOXTROT_BUILD in Core/.env. Show the current full version with:
bin/foxtrot-version show
Create the next release number automatically, or choose an explicit release:
bin/foxtrot-version release
bin/foxtrot-version release 3.0.5
The release command requires a clean working tree, increases the global build number, creates the release commit and creates an annotated three-part Git tag. It does not publish anything automatically. Review it and upload both commit and tag to Codeberg with:
git push codeberg HEAD --follow-tags