diff --git a/jans-cli-tui/docs/docs/Gallery/gallery.md b/jans-cli-tui/docs/docs/Gallery/gallery.md index a5e81262895..80e599e43db 100755 --- a/jans-cli-tui/docs/docs/Gallery/gallery.md +++ b/jans-cli-tui/docs/docs/Gallery/gallery.md @@ -1,6 +1,7 @@ # Gallarey gallery for all possibilities and future improvment for TUI +![Image title](https://github.com/JanssenProject/jans/raw/main/docs/assets/logo/janssen_project_transparent_630px_182px.png) ![Screenshot](docs/img/new_tui/new_tui1.PNG) diff --git a/jans-cli-tui/docs/docs/getting_started/installation/dynamic-download.md b/jans-cli-tui/docs/docs/getting_started/installation/dynamic-download.md new file mode 100644 index 00000000000..ec9bce78211 --- /dev/null +++ b/jans-cli-tui/docs/docs/getting_started/installation/dynamic-download.md @@ -0,0 +1,29 @@ +# Install Janssen Server using Dynamic Download + +Dynamic download installs the latest development version of Janssen Server. This installation method is suitable for setting up development environments. + +## System Requirements + +System should meet [minimum VM system requirements](vm-requirements.md) + +## Supported Linux Distributions +- Enterprise Linux 8 (CentOS 8 and Red Hat 8) +- Ubuntu 20 +- SUSE 15 + +## Installation Steps + +1. Download installer +``` +curl https://raw.githubusercontent.com/JanssenProject/jans/main/jans-linux-setup/jans_setup/install.py > install.py +``` + +2. Execute installer +``` +python3 install.py +``` + +3. Uninstalling Janssen Server +``` +python3 install.py -uninstall +``` \ No newline at end of file diff --git a/jans-cli-tui/docs/docs/getting_started/installation/rhel.md b/jans-cli-tui/docs/docs/getting_started/installation/rhel.md new file mode 100644 index 00000000000..a5a1b2e2c28 --- /dev/null +++ b/jans-cli-tui/docs/docs/getting_started/installation/rhel.md @@ -0,0 +1,30 @@ +# Install Janssen Server using Enterprise Linux Package + +## Supported versions +- Red Hat 8 +- CentOS 8 + +!!! note + SELinux should be disabled + +## System Requirements + +System should meet [minimum VM system requirements](vm-requirements.md) + +## Installation Steps + +``` +yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +``` +``` +yum module enable mod_auth_openidc +``` +``` +yum install curl +``` +``` +yum install -y https:$(curl -s -L https://api.github.com/repos/JanssenProject/jans/releases/latest | egrep -o '/.*el8.x86_64.rpm' | head -n 1) +``` +``` +sudo python3 /opt/jans/jans-setup/setup.py +``` \ No newline at end of file diff --git a/jans-cli-tui/docs/docs/getting_started/installation/suse.md b/jans-cli-tui/docs/docs/getting_started/installation/suse.md new file mode 100644 index 00000000000..3aa8157129d --- /dev/null +++ b/jans-cli-tui/docs/docs/getting_started/installation/suse.md @@ -0,0 +1,23 @@ +# Install Janssen Server using SUSE Linux Package + +## Supported versions +- SUSE 15 + +!!! note + SELinux should be disabled + +## System Requirements + +System should meet [minimum VM system requirements](vm-requirements.md) + +## Installation Steps + +``` +zypper install curl +``` +``` +zypper --no-gpg-checks install -y https:$(curl -s -L https://api.github.com/repos/JanssenProject/jans/releases/latest | egrep -o '/.*suse15.x86_64.rpm' | head -n 1) +``` +``` +sudo python3 /opt/jans/jans-setup/setup.py +``` \ No newline at end of file diff --git a/jans-cli-tui/docs/docs/getting_started/installation/ubuntu.md b/jans-cli-tui/docs/docs/getting_started/installation/ubuntu.md new file mode 100644 index 00000000000..8b281bef51f --- /dev/null +++ b/jans-cli-tui/docs/docs/getting_started/installation/ubuntu.md @@ -0,0 +1,26 @@ +# Install Janssen Server using Ubuntu Linux Package + +## Supported Versions +- Ubuntu 20.04 + +!!! note + SELinux should be disabled + +## System Requirements + +System should meet [minimum VM system requirements](vm-requirements.md) + +## Installation Steps + +``` +apt install wget curl +``` +``` +wget http:$(curl -s -L https://api.github.com/repos/JanssenProject/jans/releases/latest | egrep -o '/.*ubuntu20.04_amd64.deb' | head -n 1) -O /tmp/jans.ubuntu20.04_amd64.deb +``` +``` +apt install -y /tmp/jans.ubuntu20.04_amd64.deb +``` +``` +sudo python3 /opt/jans/jans-setup/setup.py +``` diff --git a/jans-cli-tui/docs/docs/getting_started/installation/vm-requirements.md b/jans-cli-tui/docs/docs/getting_started/installation/vm-requirements.md new file mode 100644 index 00000000000..066d2eb041c --- /dev/null +++ b/jans-cli-tui/docs/docs/getting_started/installation/vm-requirements.md @@ -0,0 +1,8 @@ +# VM System Requirements + +Janssen Server needs below-mentioned minimal resources on VM. + +## System Requirements +- 4 GB RAM +- 2 CPU +- 20 GB Disk diff --git a/jans-cli-tui/docs/docs/home/index.md b/jans-cli-tui/docs/docs/home/index.md index cb6b00ec5bd..239433759a8 100755 --- a/jans-cli-tui/docs/docs/home/index.md +++ b/jans-cli-tui/docs/docs/home/index.md @@ -3,148 +3,3 @@ ## Welcome to the Janssen Project Janssen enables organizations to build a scalable centralized authentication and authorization service using free open source software. The components of the project include client and server implementations of the OAuth, OpenID Connect, SCIM and FIDO standards. - -**Releases**: [Latest](https://github.com/JanssenProject/jans/releases/latest) | [All](https://github.com/JanssenProject/jans/releases) - -**Get Help**: [Discussions](https://github.com/JanssenProject/jans/discussions) | [Chat](https://gitter.im/JanssenProject/Lobby) - -**Get Started**: [Quick Start](#quick-start) | [User Guides](docs/user) - -**Contribute**: [Contribution Guide](docs/CONTRIBUTING.md) | [Community Docs](docs/community) | [Developer Guides](docs/developer) - -[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/janssen-auth-server)](https://artifacthub.io/packages/search?repo=janssen-auth-server) -[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4353/badge)](https://bestpractices.coreinfrastructure.org/projects/4353) -![Hex.pm](https://img.shields.io/hexpm/l/plug) -![GitHub contributors](https://img.shields.io/github/contributors/janssenproject/jans) -[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org) - -**Table of Contents** - - -- [Janssen Modules](#janssen-modules) -- [Getting Started](#getting-started) - - [Installation](#installation) -- [Users and Community](#users-and-community) -- [Contributing](#contributing) - - [Code of Conduct](#code-of-conduct) - - [Contribution Guidelines](#contribution-guidelines) -- [Security](#security) -- [Documentation](#documentation) -- [Design](#design) - - [Design Goals](#design-goals) -- [Governance](#governance) -- [Support](#support) -- [More about Janssen Project](#more-about-janssen-project) - - [History](#history) - - [why the name Janssen](#why-the-name-janssen) - - - -## Janssen Modules - -Janssen is not a big monolith--it's a lot of services working together. Whether you deploy Janssen to a Kubernetes cluster, or you are a developer running everything on one server, it's important to understand the different parts. - -1. **[jans-auth-server](jans-auth-server)**: This component is the OAuth Authorization Server, the OpenID Connect Provider, the UMA Authorization Server--this is the main Internet facing component of Janssen. It's the service that returns tokens, JWT's and identity assertions. This service must be Internet facing. - -1. **[jans-fido2](jans-fido2)**: This component provides the server side endpoints to enroll and validate devices that use FIDO. It provides both FIDO U2F (register, authenticate) and FIDO 2 (attestation, assertion) endpoints. This service must be internet facing. - -1. **[jans-config-api](jans-config-api)**: The API to configure the auth-server and other components is consolidated in this component. This service should not be Internet-facing. - -1. **[jans-scim](jans-scim)**: [SCIM](http://www.simplecloud.info/) is JSON/REST API to manage user data. Use it to add, edit and update user information. This service should not be Internet facing. - -1. **[jans-cli](jans-cli)**: This module is a command line interface for configuring the Janssen software, providing both interactive and simple single line - options for configuration. - -1. **[jans-client-api](jans-client-api)**: Middleware API to help application developers call an OAuth, OpenID or UMA server. You may wonder why this is necessary. It makes it easier for client developers to use OpenID signing and encryption features, without becoming crypto experts. This API provides some high level endpoints to do some of the heavy lifting. - -1. **[jans-core](jans-core)**: This library has code that is shared across several janssen projects. You will most likely need this project when you build other Janssen components. - -1. **[jans-orm](jans-orm)**: This is the library for persistence and caching implemenations in Janssen. Currently LDAP and Couchbase are supported. RDBMS is coming soon. - -1. **[Agama](agama)**: Agama module offers an alternative way to build authentication flows in Janssen Server. With Agama, flows are coded in a DSL (domain specific language) designed for the sole purpose of writing web flows. - -## Getting Started - -### Installation - -Janssen can be installed as cloud-native in a Kubernetes cluster or as a server on a single VM. Go to the [Janssen Project Wiki](https://github.com/JanssenProject/jans/wiki/) to know all the installation options - -## Users and Community - -A BIG thanks to all amazing contributors!! 👏 👏 - -There are many ways you can contribute. Of course you can contribute code. But we also need people to write documentation and guides, to help us with testing, to answer questions on the forums and chat, to review PR's, to help us with devops and CI/CD, to provide feedback on usability, and to promote the project through outreach. Also, by sharing metrics with us, we can gain valuable insights into how the software performs in the wild. - -Building a large community is our number one goal. Please let us know what we can do to make you feel more welcome, no matter what you want to contribute. - - - - - -## Contributing - -### Code of Conduct - -[Janssen code of conduct](docs/CODE_OF_CONDUCT.md) ensures that Janssen community is a welcoming place for everyone. - -### Contribution Guidelines - -[Contribution guide](docs/CONTRIBUTING.md) will give you all necessary information and `howto` to get started. Janssen community welcomes all types of contributions. Be it an interesting comment on an open issue or implementing a feature. Welcome aboard! ✈️ - -## Security - -### Disclosing vulnerabilities -If you think you found a security vulnerability, please refrain from posting it publicly on the forums, the chat, or GitHub. Instead, send us an email on security@jans.io. - -Refer to [Janssen Security Policy](.github/SECURITY.md) - -## Documentation - -Refer to [Janssen Wiki](https://github.com/JanssenProject/jans/wiki) for documentation. - -## Design - -### Design Goals - -The Janssen Project is aligned with the goals of cloud native infrastructure to enable: - -1. High Concurrency: For digital identity infrastructure, the number of users is not necessarily related to performance. If you have a billion users who never login, you can do this with a monolithic platform. Concurrency is hard. Janssen is designed to scale horizontally--enabling hypothetically any concurrency by adding more compute and memory. - -2. Highly Available: Digital identity infrastructure is mission critical. For many applications, if you can't login, you're dead in the water. Robustness is a fundamental consideration. - -3. Flexible while Upgradable: Open source gives you the freedom to modify the code. But having your own fork of the code might make it hard to upgrade--you'll have to merge changes. Janssen provides standard interfaces that make it possible to implement custom business logic in an upgrade-friendly manner. - -## Governance - -Janssen is a Linux Foundation project, governed according to the [charter](./docs/community/charter.md). 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 - -Documentation currently is a work in progress. Draft pages are currently available on [Janssen Project Wiki](https://github.com/JanssenProject/jans/wiki/). You may want to also check Gluu Server [docs](https://gluu.org/docs), which have a lot in common with Janssen. - -We prefer to have all our discussions through [GitHub Discussions](https://github.com/JanssenProject/jans/discussion) to better facilitate faster responses. However, other means are available such as the [community chat on Gitter](https://gitter.im/JanssenProject/Lobby). You can register for free there with your Github identity. - -If you find a bug in a Janssen project, or you would like to suggest a new feature, try the [GitHub Discussions](https://github.com/JanssenProject/jans/discussion) first. If you have a "howto" or "usage" question, [raise the question or usage](https://github.com/JanssenProject/jans/discussion)! - -## Releases - -Below are the list of current mega releases that hold information about each single release of our servies and modules: - -- [v1.0.2](https://github.com/JanssenProject/jans/releases/tag/v1.0.2) -- [v1.0.1](https://github.com/JanssenProject/jans/releases/tag/v1.0.1) -- [v1.0.0](https://github.com/JanssenProject/jans/releases/tag/v1.0.0) -- [v1.0.0-beta.16](https://github.com/JanssenProject/jans/releases/tag/v1.0.0-beta.16) -- [v1.0.0-beta.15](https://github.com/JanssenProject/jans/releases/tag/v1.0.0-beta.15) - -## More about Janssen Project - -### History - -The initial code was ported by [Gluu](https://gluu.org), based on version 4.2 of it's identity and access management (IAM) platform. Gluu launched in 2009 with the goal of creating an enterprise-grade open source distribution of IAM components. In 2012, Gluu started work on an OAuth Authorization Server to implement OpenID Connect, which they saw as a promising next-generation replacement for SAML. This project was called [oxAuth](https://github.com/GluuFederation/oxauth), and over time, became the core component of the Gluu Server. Gluu has submitted many [self-certifications](https://openid.net/certification/) at the OpenID Foundation. Today, it is one of the most comprehensive OpenID Connect Providers. - -In 2020, Gluu decided to democratize the governance of the oxAuth project by moving it to the Linux Foundation. The name of the project was changed from oxAuth to Janssen, to avoid any potential trademark issues. Gluu felt that a collaboration with the Linux Foundation would help to build a larger ecosystem. - -### Why the name Janssen? - -Pigeons (or doves if you like...) are universally regarded as a symbol of peace. But they are also fast. Powered by a handful of seeds, a well trained racing pigeon can fly 1000 kilometers in a day. The Janssen brothers of Arendonk in Belgium bred the world's fastest family of racing pigeons. Complex open source infrastructure, like competitive animal husbandry, requires incremental improvement. Janssen racing pigeons revolutionized the sport. The Janssen Project seeks to revolutionize identity and access management. - diff --git a/jans-cli-tui/docs/docs/home/janssen_modules.md b/jans-cli-tui/docs/docs/home/janssen_modules.md new file mode 100644 index 00000000000..71e50abd64b --- /dev/null +++ b/jans-cli-tui/docs/docs/home/janssen_modules.md @@ -0,0 +1,23 @@ + +## Janssen Modules + +Janssen is not a big monolith--it's a lot of services working together. Whether you deploy Janssen to a Kubernetes cluster, or you are a developer running everything on one server, it's important to understand the different parts. + +1. **[jans-auth-server](/gluu-4/docs/plugins/oauth/oauth/)**: This component is the OAuth Authorization Server, the OpenID Connect Provider, the UMA Authorization Server--this is the main Internet facing component of Janssen. It's the service that returns tokens, JWT's and identity assertions. This service must be Internet facing. + +1. **[jans-fido2](/gluu-4/docs/plugins/fido/fido/)**: This component provides the server side endpoints to enroll and validate devices that use FIDO. It provides both FIDO U2F (register, authenticate) and FIDO 2 (attestation, assertion) endpoints. This service must be internet facing. + +1. **[jans-config-api](/gluu-4/docs/plugins/config_api/config_api/)**: The API to configure the auth-server and other components is consolidated in this component. This service should not be Internet-facing. + +1. **[jans-scim](/gluu-4/docs/plugins/scim/scim/)**: [SCIM](http://www.simplecloud.info/) is JSON/REST API to manage user data. Use it to add, edit and update user information. This service should not be Internet facing. + +1. **[jans-cli](jans-cli)**: This module is a command line interface for configuring the Janssen software, providing both interactive and simple single line + options for configuration. + +1. **[jans-client-api](/gluu-4/docs/plugins/client_api/client_api/)**: Middleware API to help application developers call an OAuth, OpenID or UMA server. You may wonder why this is necessary. It makes it easier for client developers to use OpenID signing and encryption features, without becoming crypto experts. This API provides some high level endpoints to do some of the heavy lifting. + +1. **[jans-core](jans-core)**: This library has code that is shared across several janssen projects. You will most likely need this project when you build other Janssen components. + +1. **[jans-orm](jans-orm)**: This is the library for persistence and caching implemenations in Janssen. Currently LDAP and Couchbase are supported. RDBMS is coming soon. + +1. **[Agama](agama)**: Agama module offers an alternative way to build authentication flows in Janssen Server. With Agama, flows are coded in a DSL (domain specific language) designed for the sole purpose of writing web flows. diff --git a/jans-cli-tui/mkdocs.yml b/jans-cli-tui/mkdocs.yml index be6e28574aa..45c034cf3d6 100755 --- a/jans-cli-tui/mkdocs.yml +++ b/jans-cli-tui/mkdocs.yml @@ -1,70 +1,47 @@ +# Project information site_name: Jans-Cli-Tui site_url: 'https://gluu.org/gluu-4/' repo_url: 'https://github.com/JanssenProject' -edit_uri: '#https://github.com/JanssenProject' -site_description: "this is desc" - -plugins: - - mkdocstrings - - search +edit_uri: 'https://github.com/JanssenProject' +site_description: "Jans-Tui Docs" -nav: - - Home: 'docs/home/index.md' - - Gallery: - - 'docs/Gallery/gallery.md' - - TUI : 'docs/Gallery/tui.md' - - CLI : 'docs/Gallery/cli.md' - - Components: - - docs/wui_components/wui_components.md - - Dialogs components : - - 'jans_cli_dialog': 'docs/wui_components/jans_cli_dialog.md' - - 'jans_dialog_with_nav': 'docs/wui_components/jans_dialog_with_nav.md' - - 'jans_message_dialog': 'docs/wui_components/jans_message_dialog.md' - - Navigation bar components : - - 'jans_nav_bar': 'docs/wui_components/jans_nav_bar.md' - - 'jans_side_nav_bar': 'docs/wui_components/jans_side_nav_bar.md' - - 'jans_vetrical_nav': 'docs/wui_components/jans_vetrical_nav.md' - - Custom components : - - 'jans_data_picker': 'docs/wui_components/jans_data_picker.md' - - 'jans_drop_down': 'docs/wui_components/jans_drop_down.md' - - Plugins : - - 'Plugins': 'docs/plugins/plugins.md' - - OAuth : - - Main OAuth : 'docs/plugins/oauth/oauth.md' - - 'Client Dialog': 'docs/plugins/oauth/edit_client_dialog.md' - - 'Scope Dialog': 'docs/plugins/oauth/edit_scope_dialog.md' - - 'UMA Dialog': 'docs/plugins/oauth/edit_uma_dialog.md' - - FIDO : - - Main FIDO : 'docs/plugins/fido/fido.md' - - SCIM : - - Main SCIM : 'docs/plugins/scim/scim.md' - - Config API : - - Main Config API : 'docs/plugins/config_api/config_api.md' - - Client API : - - Main Client API : 'docs/plugins/client_api/client_api.md' - - Scripts : - - Main Scripts : 'docs/plugins/scripts/scripts.md' +# Copyright +copyright: Copyright © 2022, The Janssen Project +# Plugins +plugins: + - mkdocstrings + - search + - glightbox +# Configuration theme: - homepage: https://example.com - name: material - - - logo: img/logo.png + name: material + highlightjs: true + hljs_languages: + - yaml + - java + - bash + - python + logo: img/logo.png favicon: img/favicon.ico - features: - navigation.instant - toc.follow + - toc.autohide + - search.suggest + - search.highlight - navigation.tabs - navigation.tabs.sticky - navigation.top - navigation.sections + - navigation.tracking - content.code.annotate - # - navigation.expand - + - navigation.indexes + - navigation.expand + + palette: - media: "(prefers-color-scheme: light)" @@ -83,3 +60,83 @@ theme: icon: material/weather-night name: Switch to light mode +# Extensions +markdown_extensions: + - attr_list + - admonition + - toc: + # - pymdownx.superfences: + # custom_fences: + # - name: mermaid + # class: mermaid + # format: !!python/name:pymdownx.superfences.fence_code_format + # - pymdownx.tabbed + +extra: + homepage: 'docs/home/' + generator: false + social: + - icon: fontawesome/brands/github + link: https://github.com/JanssenProject/jans + name: Janssen on GitHub + - icon: fontawesome/solid/link + link: https://jans.io/docs + name: Janssen Website + +# Navigation +nav: + - Introduction: + - Welcome : 'docs/home/index.md' + - Janssen Modules : 'docs/home/janssen_modules.md' + + - Getting Started: + - Installation : + - VM System Requirements : 'docs/getting_started/installation/vm-requirements.md' + - Ubuntu : 'docs/getting_started/installation/ubuntu.md' + - RHEL : 'docs/getting_started/installation/rhel.md' + - Suse : 'docs/getting_started/installation/suse.md' + - Dynamic download : 'docs/getting_started/installation/dynamic-download.md' + + - Guides: + - Jans Cli : 'docs/Gallery/gallery.md' + - Jans Tui : 'docs/Gallery/gallery.md' + + + - Gallery: + - 'docs/Gallery/gallery.md' + - TUI : 'docs/Gallery/tui.md' + - CLI : 'docs/Gallery/cli.md' + + + + - Plugins : + - 'Plugins': 'docs/plugins/plugins.md' + - OAuth : + - Main OAuth : 'docs/plugins/oauth/oauth.md' + - 'Client Dialog': 'docs/plugins/oauth/edit_client_dialog.md' + - 'Scope Dialog': 'docs/plugins/oauth/edit_scope_dialog.md' + - 'UMA Dialog': 'docs/plugins/oauth/edit_uma_dialog.md' + - FIDO : + - Main FIDO : 'docs/plugins/fido/fido.md' + - SCIM : + - Main SCIM : 'docs/plugins/scim/scim.md' + - Config API : + - Main Config API : 'docs/plugins/config_api/config_api.md' + - Client API : + - Main Client API : 'docs/plugins/client_api/client_api.md' + - Scripts : + - Main Scripts : 'docs/plugins/scripts/scripts.md' + + - Components: + - docs/wui_components/wui_components.md + - Dialogs components : + - 'jans_cli_dialog': 'docs/wui_components/jans_cli_dialog.md' + - 'jans_dialog_with_nav': 'docs/wui_components/jans_dialog_with_nav.md' + - 'jans_message_dialog': 'docs/wui_components/jans_message_dialog.md' + - Navigation bar components : + - 'jans_nav_bar': 'docs/wui_components/jans_nav_bar.md' + - 'jans_side_nav_bar': 'docs/wui_components/jans_side_nav_bar.md' + - 'jans_vetrical_nav': 'docs/wui_components/jans_vetrical_nav.md' + - Custom components : + - 'jans_data_picker': 'docs/wui_components/jans_data_picker.md' + - 'jans_drop_down': 'docs/wui_components/jans_drop_down.md'