MCPcopy Index your code
hub / github.com/JanssenProject/jans

github.com/JanssenProject/jans @v2.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.2.0 ↗ · + Follow
43,124 symbols 231,248 edges 4,513 files 6,961 documented · 16%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Janssen Project - Open Source Digital Identity Infrastructure Software

Welcome to the Janssen Project

The Linux Foundation DPG Badge

Janssen is a self-funded project chartered directly under the Linux Foundation to foster the development of enterprise digital identity and access management infrastructure. As the lead Contributors, the Gluu team drives the priorities on a day-to-day basis, governed and guided by the Janssen community Technical Steering Committee.

There are several Janssen Components in different stages of development, from demos to stable releases. Janssen Project software has batteries included. You will find binaries, cloud-native deployment assets, documentation and more-- enabling you to build a product or mission-critical cybersecurity service with Janssen software.

If your enterprise needs Janssen for a production deployment, Gluu offers a commercial distribution of Janssen Project Components called Gluu Flex and Gluu Solo.


Releases: Latest | All

Get Help: Discussions | Chat

Docs: Documentation

Contribute: Contribution Guide | Community Docs | Developer Guides

Social: Linkedin | YouTube

Resources to learn more: Gluu Academy

Artifact Hub OpenSSF Scorecard OpenSSF Best Practices SLSA 3 Hex.pm GitHub contributors Conventional Commits


Janssen Components

The table below lists components of the Janssen Project and their maturity stages.

Component Description Lifecycle Stage
Jans Auth Server A complete OAuth Authorization Server and a certified OpenID Connect Provider written in Java. It's the upstream open-source core of Gluu Flex. Graduated
Agama Agama offers an interoperable way to design authentication flows, coded in a DSL purpose-built for writing identity journeys. Graduated
Jans FIDO Enables end-users to enroll and authenticate with passkeys and other FIDO authenticators. Graduated
Jans SCIM SCIM JSON/REST API for user management, including associated FIDO devices. Graduated
Jans Config API RESTful APIs manage configuration for all Janssen components. Graduated
Text UI ("TUI") User interface accessible from command line. TUI is text-based interactive configuration tool that leverages config-API to configure Janssen Server modules Graduated
Jans CLI Command line configuration tools to help you correctly call the Config API. Graduated
Jans Casa Jans Casa is a self-service web portal for end-users to manage authentication and authorization preferences for their account in the Janssen Server Graduated
Jans Cedarling Cedarling is an embeddable stateful Policy Decision Point for authorization requests. In simple terms, the Cedarling returns the answer: should the application allow this action on this resource given these JWT tokens. It is written in Rust with bindings to WASM, iOS, Android, and Python. Incubating
Jans Lock An enterprise authorization solution featuring the Cedarling, a stateless PDP and the Lock Server which centralizes audit logs and configuration. Incubating
Janssen Tarp An OpenID Connect RP test website that runs as a browser plugin in Chrome or Firefox. Incubating
Jans Chip Sample iOS and Android mobile applications that implement the full OAuth and FIDO security stack for app integrity, client constrained access tokens, and user presence. Demo

Installation

You can install the Janssen federation stack in a Kubernetes cluster or as a single VM.

Development environments: Quick Start | Local K8S | VM install

Production deployments: Amazon EKS | Microsoft Azure AKS | Google GKE | Rancher

Check out the Janssen Documentation for details.

Community

A BIG thanks to all the amazing contributors!! 👏 👏

Building a diverse and inclusive community is an important goal. Please let us know what we can do to make you feel more welcome, no matter what you want to contribute.

Code of Conduct / Contribution Guidelines / Security

  • Janssen code of conduct ensures that the Janssen community is a welcoming place for everyone.

  • Start with the Contribution Guide for an introduction on the Janssen development lifecycle.

  • If you think you found a security vulnerability, please refrain from posting it publicly on the forums, the chat, or GitHub. Instead, email us at security@jans.io. Refer to Janssen Security Policy

Governance

Janssen is a self-funded Linux Foundation project, governed according to the charter. Technical oversight of the project is the responsibility of the Technical Steering Committee ("TSC"). Day-to-day decision-making is in the hands of the Contributors. The TSC helps to guide the direction of the project and to improve the quality and security of the development process.

Support

If you find a bug in the Janssen project, would like to suggest a new feature, or have a "howto" question, please post on GitHub Discussions, which is the main channel for community support. There is also a community chat on Zulip.

Releases

Check out the latest release of the Janssen Project for new features and updates.

Janssen History

In 2020, Gluu decided to give contributors a role in the governance and collaborated with the Linux Foundation to charter the Janssen Project. The initial software contribution for the Janssen Project was a fork of the Gluu Server version 4. Subsequently, the Janssen Project developers added a new configuration control plane, tools, demos, documentation, packaging and deployment assets.

Why the name Janssen?

Pigeons (or doves...) are universally regarded as a symbol of peace--which we need more of today. But pigeons are also really fast, capable of flying 1000 kilometers in a single day, powered by a handful of seeds. The Janssen brothers of Arendonk in Belgium bred the world's fastest family of racing pigeons. Janssen racing pigeons revolutionized the sport. The Janssen Project seeks to revolutionize how open-source digital identity scales in the clouds.

Extension points exported contracts — how you extend this code

BaseExternalType (Interface)
Base interface for external python script @author Yuriy Movchan Date: 11/11/2014 [176 implementers]
jans-core/script/src/main/java/io/jans/model/custom/script/type/BaseExternalType.java
MessageInterface (Interface)
Interface for each message provider @author Yuriy Movchan Date: 30/11/2023 [6 implementers]
jans-core/message/src/main/java/io/jans/service/message/provider/MessageInterface.java
IsJsonRequest (Interface)
@author Yuriy Z [8 implementers]
jans-auth-server/client/src/main/java/io/jans/as/client/IsJsonRequest.java
JweEncrypter (Interface)
@author Javier Rojas Blum Date: 12.03.2012 [9 implementers]
jans-auth-server/model/src/main/java/io/jans/as/model/jwe/JweEncrypter.java
IPolicyExternalAuthorization (Interface)
@author Yuriy Zabrovarnyy @version 0.9, 21/02/2013 [37 implementers]
jans-auth-server/server/src/main/java/io/jans/as/server/uma/authorization/IPolicyExternalAuthorization.java
CertificateVerifier (Interface)
Base interface for all certificate verifiers @author Yuriy Movchan @version March 11, 2016 [10 implementers]
jans-auth-server/common/src/main/java/io/jans/as/common/cert/validation/CertificateVerifier.java
AuthnMethod (Interface)
This interface is an extension point that plugin developers can use to add/override authentication mechanisms exhibited [8 …
jans-casa/shared/src/main/java/io/jans/casa/extension/AuthnMethod.java
AttributeEnum (Interface)
Base interface for Persistance enumerations @author Yuriy Movchan Date: 10.07.2010 [51 implementers]
jans-orm/annotation/src/main/java/io/jans/orm/annotation/AttributeEnum.java

Core symbols most depended-on inside this repo

toString
called by 3696
jans-auth-server/client/src/main/java/io/jans/as/client/ssa/get/SsaGetJson.java
asList
called by 3565
jans-auth-server/model/src/main/java/io/jans/as/model/util/Util.java
assertNotNull
called by 2601
jans-core/util/src/main/java/io/jans/util/AssertionHelper.java
put
called by 2225
jans-core/cache/src/main/java/io/jans/service/cache/CacheInterface.java
append
called by 2123
jans-auth-server/model/src/main/java/io/jans/as/model/util/QueryBuilder.java
info
called by 1994
jans-cedarling/cedarling/src/lock/log_entry.rs
get
called by 1971
jans-orm/core/src/main/java/io/jans/orm/reflect/property/Getter.java
add
called by 1859
jans-casa/shared/src/main/java/io/jans/casa/service/IPersistenceService.java

Shape

Method 32,991
Function 5,386
Class 3,991
Enum 355
Interface 220
Struct 160
Route 12
TypeAlias 6
FuncType 3

Languages

Java71%
Python11%
Rust8%
TypeScript7%
Go2%
Kotlin1%

Modules by API surface

jans-auth-server/model/src/main/java/io/jans/as/model/configuration/AppConfiguration.java652 symbols
jans-auth-server/server/src/main/webapp/js/bootstrap.bundle.min.js390 symbols
jans-casa/app/src/main/webapp/scripts/bootstrap.min.js350 symbols
jans-auth-server/server/src/main/webapp/js/bootstrap.min.js350 symbols
jans-casa/plugins/bioid/extras/agama/web/js/three.min.js337 symbols
jans-auth-server/server/src/main/webapp/auth/bioid/js/three.min.js337 symbols
jans-auth-server/client/src/main/java/io/jans/as/client/RegisterRequest.java221 symbols
docs/script-catalog/person_authentication/other/wwpass/static/js/wwpass-frontend.js185 symbols
jans-core/service/src/main/java/io/jans/config/link/AppConfiguration.java179 symbols
jans-auth-server/common/src/main/java/io/jans/as/common/model/registration/Client.java151 symbols
jans-auth-server/client/src/main/java/io/jans/as/client/OpenIdConfigurationResponse.java146 symbols
jans-orm/core/src/main/java/io/jans/orm/impl/BaseEntryManager.java108 symbols

Datastores touched

(mysql)Database · 1 repos
jansdbDatabase · 1 repos
jansdbDatabase · 1 repos
postgresDatabase · 1 repos
gluudbDatabase · 1 repos
jansDatabase · 1 repos
jansDatabase · 1 repos

For agents

$ claude mcp add jans \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact