Skip to content

OS2mo/os2mo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

06fac3e · Apr 16, 2025
Nov 28, 2023
Jun 13, 2022
Apr 28, 2023
Jan 26, 2024
Jan 30, 2020
Apr 16, 2025
Feb 19, 2025
Jan 29, 2025
Apr 15, 2025
Sep 26, 2024
Oct 22, 2024
Jan 18, 2024
Jan 29, 2025
Feb 19, 2025
Oct 10, 2024
Jan 9, 2023
Mar 4, 2025
Jan 29, 2025
Apr 9, 2025
Mar 3, 2025
Jan 30, 2020
Feb 21, 2025
Oct 22, 2024
Apr 9, 2025
Nov 28, 2023
Apr 15, 2025
Mar 5, 2025
Apr 15, 2025

Repository files navigation

OS2mo

MO is an IT system for organisational and identity management.

It enables your organisation to maintain information about the organisation and its employees, volunteers, external consultants, robot users, and so on, from a single user interface.

You get a complete overview of all departments, employees' (multiple) employments, their IT access, their affiliations, and roles throughout the organisation. You also get a complete picture of management hierarchies, and you can see your union representative organisation, your payroll organisation, your safety organisation, your line organisation, etc.

The vision for MO is that it should be the source system for the entire organisation and its employees: this is where organisational changes are made, this is where employees are created and removed, and this information will automatically - and immediately - be sent to other systems. The information can also come from other systems - or be enriched from them - but it is MO that contains the complete picture of the organisation.

Because MO contains all the information about the organisation, and it is always up-to-date and correct, it is important to connect MO to other systems that need the information - be it LDAP (e.g. Active Directory), an IdM system, FK-Organisation, an org chart, an HR system, etc.

When MO is connected to many systems, workflows are automated and consistent and high data quality is realised in the connected systems.

The primary documentation for OS2mo is available at https://rammearkitektur.docs.magenta.dk/os2mo/index.html (in Danish). Technical documentation in English is available at https://rammearkitektur.docs.magenta.dk/os2mo/tech-docs/architecture.html.

GraphQL

The primary API for OS2mo is GraphQL. The interface is versioned to handle future breaking changes, without actually breaking any integration code. New versions are added as needed and old versions are removed as they become obsolete.

New integrations should always use the newest version of the interface available, and old integrations should continuously be updated to the newer versions as they are introduced, by following the Migration Guide.

The /graphql endpoint redirects the browser to the GraphiQL interface for the newest version, e.g. for local development: http://localhost:5000/graphql. GraphiQL has a built-in documentation explorer which can be accessed by ctrl-clicking most fields.

graphiql

There is no way to use the newest version of the GraphQL interface programmatically, e.g. from integrations. This is by design to avoid integrations being broken automatically once a new version is introduced, as such, all integrations should be hardcoding the GraphQL version that they are utilising and should update this hardcoded URL as they upgrade to a newer version following the migration guide.

The GraphQL schema for each version is available at /graphql/vXX/schema.graphql in regular GraphQL Schema Definition Language (SDL).

More thorough documentation for the GraphQL API is available at https://rammearkitektur.docs.magenta.dk/os2mo/tech-docs/graphql/intro.html.

Getting Started

To get a local OS2mo stack running on a sane operating system:

git clone https://github.com/OS2mo/os2mo.git
cd os2mo/
docker compose up -d --build

The OS2mo frontend should now be available at http://localhost:5000, and the GraphiQL explorer at http://localhost:5000/graphql. The default admin username/password is alvida/alvida.

To stop the stack, run

docker compose down

To stop the stack and delete all data volumes, run

docker compose down -v

A more detailed walk-through is available at https://rammearkitektur.docs.magenta.dk/os2mo/tech-docs/development.html.

Versioning

This project uses Semantic Versioning with the following strategy:

  • MAJOR: Incompatible API changes.
  • MINOR: Backwards-compatible updates and functionality.
  • PATCH: Backwards-compatible bug fixes.

The changelog is available at https://rammearkitektur.docs.magenta.dk/os2mo/changelog.html.

Authors

Magenta ApS https://magenta.dk

License

MPL-2.0. This project uses REUSE for licensing. All licenses can be found in the LICENSES folder of the project.