Skip to content

Commit

Permalink
docs: add README for technical docs
Browse files Browse the repository at this point in the history
docs: add README for technical docs
  • Loading branch information
ossdhaval authored Mar 29, 2022
2 parents dc87dc0 + e238862 commit 61ec646
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 2 deletions.
20 changes: 20 additions & 0 deletions docs/assets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Use the [assets](../assets) directory to store digital assets like images and diagrams that are used to support documentation for all modules.

## Directory Structure
Directory structure under this directory should closely follow directory structure under [docs](../docs) directory.

For example, documents located under `docs/user/howto` should place their supporting images\diagrams under `docs/assets/user/howto`.

## Images and Diagrams
Keep images and diagrams in separate directories as below.
- `images` : to hold screenshots and other images (Max size 1MB each, preferrably `.png`)
- `diagrams` : to hold interaction diagrams, class diagrams, sequence diagram. (Preferrably as PDF)

For instance, images that support technical documentation for `jans-core` module should be located in `jans/docs/assets/technical/jans-core/images`

## File Naming Conventions
Image/diagram file names should follow the pattern: `image/diagram`-`3 tag words`-`mmddyyyy`.`type`.

For example,
- A screenshot of IDE settings for developer workspace setup can be named `image-eclipse-ide-setting-04052022.png`
- A sequence diagram for user registration flow can be named `diagram-user-registration-sequence-03062022.pdf`
46 changes: 44 additions & 2 deletions docs/technical/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
# Technical Design Documentation
# Technical Documentation

This documentation explains technical design, architecture and interactions of various Janssen modules.

## Contents:

- [API Reference](#api-reference)
- [Design Consideration and Guidelines](#design-consideration-and-guidelines)
- [REST API Design](#rest-api-design)
- [Caching](#caching)
- [Testing](#testing)
- [Deployment](#deployment)
- [Security](#security)
- [Scalability and Cloud Infrastructure](#scalability-and-cloud-infrastructure)
- [Technical Documentation Guidelines](#technical-documentation-guidelines)

## API Reference

| Service | REST API | Java API |
| --- | --- | --- |
| Jans Auth Server | [Swagger](https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/JanssenProject/jans/main/jans-auth-server/docs/swagger.yaml)| [Javadoc](https://jenkins.jans.io/javadocs/jans-auth/main/)|
| Jans Client API | [Swagger](https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/JanssenProject/jans/main/jans-client-api/server/src/main/resources/swagger.yaml)| [Javadoc](https://jenkins.jans.io/javadocs/jans-client-api/main/)|
| Jans Config API | [Swagger](https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/JanssenProject/jans/main/jans-config-api/docs/jans-config-api-swagger.yaml)| |
| Jans Core | | [Javadoc](https://jenkins.jans.io/javadocs/jans-core/main/)|
| Jans FIDO 2 | [Swagger](https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/JanssenProject/jans/main/jans-fido2/docs/jansFido2Swagger.yaml) | |
| Jans SCIM API | [Swagger](https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/server/src/main/resources/jans-scim-openapi.yaml) | [Javadoc](https://jenkins.jans.io/javadocs/jans-scim/main/) |

## Design Consideration and Guidelines

This section outlines high-level design principles, styles and design choices that Janssen project follow.
### REST API Design
### Caching
### Testing
### Deployment
### Security
### Scalability and Cloud Infrastructure

## Technical Documentation Guidelines

- Detailed technical documentation for each module should be placed under directory with module's name. For example, technical documentation for `jans-mod` should be placed under directory `docs/technical/jans-mod`
- Each module directory should have a README file that follows [Technical Overview Template](./technical-overview-template.md).
- Create directories if required under module directory to further arrange documentation
- Place all the digital assets to support your documentation under [assets](../assets) following these [guidelines](../assets/README.md)


Documents that explain technical design, architecture and interations of various Janssen modules
28 changes: 28 additions & 0 deletions docs/technical/technical-overview-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# <module name>

Contents:
- [Functional Overview](#functional-overview)
- [Design Overview](#design-overview)
- [API and Code Reference](#api-and-code-reference)
- [Deployment](#deployment)
- [Data Reference](#data-reference)
- [How to Run Tests](#how-to-run-tests)
- [Logging](#logging)
- [Security Considerations](#security-considerations)


## Functional Overview
<!-- A high level overview of what the component is supposed to do and how it works. We recommend using diagrams to illustrate cross-module interactions and important flows within the same module -->
## Design Overview
<!--- Describe code structure (packages), diagrams to show how this module interacts with other modules, add class diagrams for set of core classes, sequence diagrams that depict core functionalities, design constraints, --->
## API and Code Reference
- [API Reference](<!-- Link to [OpenAPI](https://swagger.io/specification/) document which can be viewed with [SwaggerUI](https://swagger.io/tools/swagger-ui/) -->)
- [Code Reference](<!-- Link to auto-generated docs that are extracted from the code, for example, Javadocs -->)
## Deployment
<!-- Instructions on how to properly deploy this component. Included are what persistence, caching, file system, network (e.g. port), compute or other system requirements are needed to make it run.-->
## Data Reference
<!-- If the component needs a database or cache, an overview of the required schema or information tree.-->
## How to Run Tests
## Logging
<!--- Log file name, how to enable and change logging levels for this module --->
## Security Considerations

0 comments on commit 61ec646

Please sign in to comment.