Skip to main content

CalypSSO

Node project build as a Python module for Hyperion. CalypSSO is composed of:

  • A small and static Next.js frontend for Hyperion

Next.js development

You can set Hyperion base url in a dotenv /web/.env

yarn install
yarn dev:web

Pages

The base url of this project is /calypsso.

You will find:

  • http://localhost:3000/calypsso/register
  • http://localhost:3000/calypsso/activate?activation_token=12345
  • http://localhost:3000/calypsso/activate?activation_token=12345&external=true
  • http://localhost:3000/calypsso/recover
  • http://localhost:3000/calypsso/reset-password?reset_token=12345
  • http://localhost:3000/calypsso/login?client_id=Titan&response_type=code&scope=API&redirect_uri=https://localhost:8000/static.html&code_challenge=3sMJwwv1xfZK6yay-HkpseTGMUrmwWx5B9zVAxGfrb0=&code_challenge_method=S256
  • http://localhost:3000/calypsso/change-password/?email=prenom.nom%40etu.ec-lyon.fr
  • http://localhost:3000/calypsso/asset/?path=mypayment_terms_of_service

Maizzle emails template

Email templates are build using Maizzle.

To preview mails during development use:

yarn install
yarn dev:mail

Email contains escaped template strings:@{{ variable_name }} will be rendered by Maizzle as {{ variable_name }}. Then the Python module will process these expressions using Jinja2

Emails, layout and components are based on maizzle base template repository and design.

You can set the frontmatter preheader of a mail to customize the text preview of the email. See preview-text

Variable starting with an underscore (ex: _logo_url) will be set globally by CalypSSO Python module.

Build Python module

First you need to compile the Next.js project

yarn install
yarn build

The build pages will be located in the /out directory. The small Python package sources are located in /python.

You can install it locally in an other python project using

pip install "path/to/calypsso"

To use it, you need to mount CalypSSO at the subpath /calypsso

For exemple with FastAPI, you could do:

from fastapi import FastAPI

# Define your app
app = FastAPI(
    title="MyFastAPIApp",
)
# ...
# Mount CalypSSO app at the subpath /calypsso
calypsso = get_calypsso_app()
app.mount("/calypsso", calypsso)

Make a release on Pypi

You need to edit CalypSSO version in python/calypsso/__about__.py. Then make a release on GitHub and add a tag. The tag should match v*.*.*.

Metadata

Release files for CalypSSO 2.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for CalypSSO 2.7.1
File Size Uploaded
calypsso-2.7.1.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for CalypSSO 2.7.1
File Interpreter ABI Platform
calypsso-2.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.7 MB

Release files / calypsso-2.7.1.tar.gz

Download URL calypsso-2.7.1.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
eddff8d2cbd04e88bcc76a9e06dc4869250b6ae68b8291d4c717d6b5c8a56ec5
BLAKE2b-256 checksum
How to use checksums
81d9bba60a194b16c36aa43bfdfc89a0deb699a42c51f81bb0fe02b056712adb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / calypsso-2.7.1-py3-none-any.whl

Download URL calypsso-2.7.1-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b532cd7df27ee030d153509864a93fa571222e8cd7725216cc68321672584e0f
BLAKE2b-256 checksum
How to use checksums
0b1dd64b2fbfb2e3636d6710c55ee8926b04c5cad939781c693c3ef970f088e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.7.1 This release

2 release files

2.7.0

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page