Search by

mpjensen / foxtrot

mpjensen

Foxtrot MVC Framework

3.0.7 2026-08-26 15:47 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