Skip to content

Commit

Permalink
fix:jans-cli add new pages and enhance structure
Browse files Browse the repository at this point in the history
  • Loading branch information
AbdelwahabAdam committed Sep 19, 2022
1 parent 4b6ab89 commit e609676
Show file tree
Hide file tree
Showing 9 changed files with 247 additions and 195 deletions.
1 change: 1 addition & 0 deletions jans-cli-tui/docs/docs/Gallery/gallery.md
Original file line number Diff line number Diff line change
@@ -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)

Expand Down
Original file line number Diff line number Diff line change
@@ -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
```
30 changes: 30 additions & 0 deletions jans-cli-tui/docs/docs/getting_started/installation/rhel.md
Original file line number Diff line number Diff line change
@@ -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
```
23 changes: 23 additions & 0 deletions jans-cli-tui/docs/docs/getting_started/installation/suse.md
Original file line number Diff line number Diff line change
@@ -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
```
26 changes: 26 additions & 0 deletions jans-cli-tui/docs/docs/getting_started/installation/ubuntu.md
Original file line number Diff line number Diff line change
@@ -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
```
Original file line number Diff line number Diff line change
@@ -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
145 changes: 0 additions & 145 deletions jans-cli-tui/docs/docs/home/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<a href="https://github.com/JanssenProject/jans/graphs/contributors">
<img src="https://contrib.rocks/image?repo=JanssenProject/jans" />
</a>

## 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.

23 changes: 23 additions & 0 deletions jans-cli-tui/docs/docs/home/janssen_modules.md
Original file line number Diff line number Diff line change
@@ -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.
Loading

0 comments on commit e609676

Please sign in to comment.