From f1bdb81898e7bbdf7fc4cbe3806b7e088598dc65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 30 Nov 2020 16:33:32 +0300 Subject: [PATCH] Reorganized the module documents. --- docs/en/Modules/Client-Simulation.md | 3 ++ docs/en/Modules/Cms-Kit.md | 3 ++ docs/en/Modules/Identity.md | 50 +++++++++++++++++++- docs/en/Modules/Index.md | 26 ++++++----- docs/en/Modules/Organization-Units.md | 47 ------------------- docs/en/Modules/Users.md | 3 ++ docs/en/docs-nav.json | 67 ++++++++++++++++++++++++++- 7 files changed, 138 insertions(+), 61 deletions(-) create mode 100644 docs/en/Modules/Client-Simulation.md create mode 100644 docs/en/Modules/Cms-Kit.md delete mode 100644 docs/en/Modules/Organization-Units.md create mode 100644 docs/en/Modules/Users.md diff --git a/docs/en/Modules/Client-Simulation.md b/docs/en/Modules/Client-Simulation.md new file mode 100644 index 0000000000..bc5d38e814 --- /dev/null +++ b/docs/en/Modules/Client-Simulation.md @@ -0,0 +1,3 @@ +# Client Simulation Module + +TODO \ No newline at end of file diff --git a/docs/en/Modules/Cms-Kit.md b/docs/en/Modules/Cms-Kit.md new file mode 100644 index 0000000000..e13f1e585b --- /dev/null +++ b/docs/en/Modules/Cms-Kit.md @@ -0,0 +1,3 @@ +# CMS Kit Module + +TODO \ No newline at end of file diff --git a/docs/en/Modules/Identity.md b/docs/en/Modules/Identity.md index b38f59c03b..a88087eaa8 100644 --- a/docs/en/Modules/Identity.md +++ b/docs/en/Modules/Identity.md @@ -2,7 +2,7 @@ Identity module is used to manage [organization units](Organization-Units.md), roles, users and their permissions, based on the Microsoft Identity library. -**See [the source code](https://github.com/abpframework/abp/tree/dev/modules/identity). Documentation will come soon...** +> **See [the source code](https://github.com/abpframework/abp/tree/dev/modules/identity). Documentation will come soon...** ## Identity Security Log @@ -27,3 +27,51 @@ Configure(options => options.ApplicationName = "AbpSecurityTest"; }); ``` + +## Organization Unit Management + +Organization units (OU) is a part of **Identity Module** and can be used to **hierarchically group users and entities**. + +### OrganizationUnit Entity + +An OU is represented by the **OrganizationUnit** entity. The fundamental properties of this entity are: + +- **TenantId**: Tenant's Id of this OU. Can be null for host OUs. +- **ParentId**: Parent OU's Id. Can be null if this is a root OU. +- **Code**: A hierarchical string code that is unique for a tenant. +- **DisplayName**: Shown name of the OU. + +The OrganizationUnit entity's primary key (Id) is a **Guid** type and it derives from the [**FullAuditedAggregateRoot**](../Entities.md) class. + +#### Organization Tree + +Since an OU can have a parent, all OUs of a tenant are in a **tree** structure. There are some rules for this tree; + +- There can be more than one root (where the `ParentId` is `null`). +- There is a limit for the first-level children count of an OU (because of the fixed OU Code unit length explained below). + +#### OU Code + +OU code is automatically generated and maintained by the OrganizationUnit Manager. It's a string that looks something like this: + +"**00001.00042.00005**" + +This code can be used to easily query the database for all the children of an OU (recursively). There are some rules for this code: + +- It must be **unique** for a [tenant](../Multi-Tenancy.md). +- All the children of the same OU have codes that **start with the parent OU's code**. +- It's **fixed length** and based on the level of the OU in the tree, as shown in the sample. +- While the OU code is unique, it can be **changeable** if you move an OU. +- You must reference an OU by Id, not Code. + +### OrganizationUnit Manager + +The **OrganizationUnitManager** class can be [injected](../Dependency-Injection.md) and used to manage OUs. Common use cases are: + +- Create, Update or Delete an OU +- Move an OU in the OU tree. +- Getting information about the OU tree and its items. + +#### Multi-Tenancy + +The `OrganizationUnitManager` is designed to work for a **single tenant** at a time. It works for the **current tenant** by default. \ No newline at end of file diff --git a/docs/en/Modules/Index.md b/docs/en/Modules/Index.md index ae17c15c8a..9d0199f4c3 100644 --- a/docs/en/Modules/Index.md +++ b/docs/en/Modules/Index.md @@ -1,6 +1,6 @@ # Application Modules -ABP is a **modular application framework** which consists of dozens of **nuget packages**. It also provides a complete infrastructure to build your own application modules which may have entities, services, database integration, APIs, UI components and so on. +ABP is a **modular application framework** which consists of dozens of **NuGet & NPM packages**. It also provides a complete infrastructure to build your own application modules which may have entities, services, database integration, APIs, UI components and so on. There are **two types of modules.** They don't have any structural difference but categorized by functionality and purpose: @@ -9,24 +9,26 @@ There are **two types of modules.** They don't have any structural difference bu ## Open Source Application Modules -There are some **free and open source** application modules developed and maintained by the ABP community: +There are some **free and open source** application modules developed and maintained as a part of the ABP Framework. -* **Account**: Provides UI for the account management and allows user to login/register to the application. +* [**Account**](Account.md): Provides UI for the account management and allows user to login/register to the application. * [**Audit Logging**](Audit-Logging.md): Persists audit logs to a database. -* **Background Jobs**: Persist background jobs when using the default background job manager. -* **Blogging**: Used to create fancy blogs. ABP's [own blog](https://blog.abp.io/) already using this module. -* [**Docs**](Docs.md): Used to create technical documentation pages. ABP's [own documentation](https://docs.abp.io) already using this module. -* **Feature Management**: Used to persist and manage the [features](../Features.md). +* [**Background Jobs**](Background-Jobs.md): Persist background jobs when using the default background job manager. +* [**Blogging**](Blogging.md): Used to create fancy blogs. ABP's [own blog](https://blog.abp.io/) already using this module. +* [**Client Simulation**](Client-Simulation.md): A simple web UI to stress test HTTP APIs by simulating concurrent clients. +* [**CMS Kit**](Cms-Kit.md): A set of reusable *Content Management System* features. +* [**Docs**](Docs.md): Used to create technical documentation website. ABP's [own documentation](https://docs.abp.io) already using this module. +* [**Feature Management**](Feature-Management.md): Used to persist and manage the [features](../Features.md). * **[Identity](Identity.md)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library. -* **IdentityServer**: Integrates to IdentityServer4. -* **Permission Management**: Used to persist permissions. +* [**IdentityServer**](IdentityServer.md): Integrates to IdentityServer4. +* [**Permission Management**](Permission-Management.md): Used to persist permissions. * **[Setting Management](Setting-Management.md)**: Used to persist and manage the [settings](../Settings.md). -* **Tenant Management**: Manages tenants for a [multi-tenant](../Multi-Tenancy.md) application. -* **Users**: Abstract users, so other modules can depend on this module instead of the Identity module. +* [**Tenant Management**](Tenant-Management.md): Manages tenants for a [multi-tenant](../Multi-Tenancy.md) application. +* [**Users**](Users.md): Abstract users, so other modules can depend on this module instead of the Identity module. * [**Virtual File Explorer**](Virtual-File-Explorer.md): Provided a simple UI to view files in [virtual file system](../Virtual-File-System.md). See [the GitHub repository](https://github.com/abpframework/abp/tree/master/modules) for source code of all modules. ## Commercial Application Modules -[ABP Commercial](https://commercial.abp.io/) license provides additional pre-built application modules on top of the ABP framework. See the [module list](https://commercial.abp.io/modules) provided by the ABP Commercial. \ No newline at end of file +[ABP Commercial](https://commercial.abp.io/) license provides **additional pre-built application modules** on top of the ABP framework. See the [module list](https://commercial.abp.io/modules) provided by the ABP Commercial. \ No newline at end of file diff --git a/docs/en/Modules/Organization-Units.md b/docs/en/Modules/Organization-Units.md deleted file mode 100644 index b27e038528..0000000000 --- a/docs/en/Modules/Organization-Units.md +++ /dev/null @@ -1,47 +0,0 @@ -# Organization Unit Management - -Organization units (OU) is a part of **Identity Module** and can be used to **hierarchically group users and entities**. - -### OrganizationUnit Entity - -An OU is represented by the **OrganizationUnit** entity. The fundamental properties of this entity are: - -- **TenantId**: Tenant's Id of this OU. Can be null for host OUs. -- **ParentId**: Parent OU's Id. Can be null if this is a root OU. -- **Code**: A hierarchical string code that is unique for a tenant. -- **DisplayName**: Shown name of the OU. - -The OrganizationUnit entity's primary key (Id) is a **Guid** type and it derives from the [**FullAuditedAggregateRoot**](../Entities.md) class. - -#### Organization Tree - -Since an OU can have a parent, all OUs of a tenant are in a **tree** structure. There are some rules for this tree; - -- There can be more than one root (where the `ParentId` is `null`). -- There is a limit for the first-level children count of an OU (because of the fixed OU Code unit length explained below). - -#### OU Code - -OU code is automatically generated and maintained by the OrganizationUnit Manager. It's a string that looks something like this: - -"**00001.00042.00005**" - -This code can be used to easily query the database for all the children of an OU (recursively). There are some rules for this code: - -- It must be **unique** for a [tenant](../Multi-Tenancy.md). -- All the children of the same OU have codes that **start with the parent OU's code**. -- It's **fixed length** and based on the level of the OU in the tree, as shown in the sample. -- While the OU code is unique, it can be **changeable** if you move an OU. -- You must reference an OU by Id, not Code. - -### OrganizationUnit Manager - -The **OrganizationUnitManager** class can be [injected](../Dependency-Injection.md) and used to manage OUs. Common use cases are: - -- Create, Update or Delete an OU -- Move an OU in the OU tree. -- Getting information about the OU tree and its items. - -#### Multi-Tenancy - -The `OrganizationUnitManager` is designed to work for a **single tenant** at a time. It works for the **current tenant** by default. diff --git a/docs/en/Modules/Users.md b/docs/en/Modules/Users.md new file mode 100644 index 0000000000..1cb0f4b701 --- /dev/null +++ b/docs/en/Modules/Users.md @@ -0,0 +1,3 @@ +# Users Module + +TODO \ No newline at end of file diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 1eb4089c4b..58f0c55a0c 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -914,7 +914,72 @@ }, { "text": "Application Modules", - "path": "Modules/Index.md" + "items": [ + { + "text": "Overall", + "path": "Modules/Index.md" + }, + { + "text": "Account", + "path": "Modules/Account.md" + }, + { + "text": "Audit Logging", + "path": "Modules/Audit-Logging.md" + }, + { + "text": "Background Jobs", + "path": "Modules/Background-Jobs.md" + }, + { + "text": "Blogging", + "path": "Modules/Blogging.md" + }, + { + "text": "Client Simulation", + "path": "Modules/Client-Simulation.md" + }, + { + "text": "CMS Kit", + "path": "Modules/Cms-Kit.md" + }, + { + "text": "Docs", + "path": "Modules/Docs.md" + }, + { + "text": "Feature Management", + "path": "Modules/Feature-Management.md" + }, + { + "text": "Identity", + "path": "Modules/Identity.md" + }, + { + "text": "IdentityServer", + "path": "Modules/IdentityServer.md" + }, + { + "text": "Permission Management", + "path": "Modules/Permission-Management.md" + }, + { + "text": "Setting Management", + "path": "Modules/Setting-Management.md" + }, + { + "text": "Tenant Management", + "path": "Modules/Tenant-Management.md" + }, + { + "text": "Users", + "path": "Modules/Users.md" + }, + { + "text": "Virtual File Explorer", + "path": "Modules/Virtual-File-Explorer.md" + } + ] }, { "text": "Release Information",