You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2022/04/07 20:24:40 UTC
[directory-fortress-core] branch master updated: replace image with a graph
This is an automated email from the ASF dual-hosted git repository.
smckinney pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-fortress-core.git
The following commit(s) were added to refs/heads/master by this push:
new ba6762fa replace image with a graph
ba6762fa is described below
commit ba6762fa0e09b6374fec3971625f2c4ec6c8eab7
Author: Shawn McKinney <sm...@symas.com>
AuthorDate: Thu Apr 7 15:24:34 2022 -0500
replace image with a graph
---
README-MULTITENANCY.md | 56 ++++++++++++++++++++++++++++++++------------------
1 file changed, 36 insertions(+), 20 deletions(-)
diff --git a/README-MULTITENANCY.md b/README-MULTITENANCY.md
index 2fd4494c..ac0cdfc9 100644
--- a/README-MULTITENANCY.md
+++ b/README-MULTITENANCY.md
@@ -43,33 +43,49 @@ From Wikipedia:
-------------------------------------------------------------------------------
## SECTION 2. About the Datastructures
-1. Each tenant gets its own copy of the data. For example if a tenant's id is acme123, there will be a container underneath the suffix:
+1. Each tenant gets its own copy of the data. For example if a tenant's id is acme, there will be a container underneath the suffix:
```
- ou=acme123, dc=example, dc=com.
+ ou=acme, dc=example, dc=com.
```
-2. Beneath the acme123 *container* node will be that tenant's copy of data. For example:
+2. Beneath the acme *container* node will be that tenant's copy of data. For example:
```
- ou=People, ou=acme123, dc=example, dc=com
- ou=Roles, ou=acme123, dc=example, dc=com
- ou=Perms, ou=acme123, dc=example, dc=com
- ou=Groups, ou=acme123, dc=example, dc=com
+ ou=People, ou=acme, dc=example, dc=com
+ ou=Roles, ou=acme, dc=example, dc=com
+ ou=Perms, ou=acme, dc=example, dc=com
+ ou=Groups, ou=acme, dc=example, dc=com
...
```
-3. Screenshot with Apache Directory Studio.
-
- ![Multitenant Tree](images/screenshot-acme123-dit.png "ACME123 Tenant Subtree")
-
+3. A multitenant Directory Information Tree containing tenants acme, foo and bar:
+
+```
+ dc=example,dc=com
+ ├─ou=people
+ ├─ou=roles
+ ├─ou=perms
+ ├─ou=acme
+ │ ├─ou=people
+ │ ├─ou=roles
+ │ └─ou=perms
+ ├─ou=foo
+ │ ├─ou=people
+ │ ├─ou=roles
+ │ └─ou=perms
+ ├─ou=bar
+ │ ├─ou=people
+ │ ├─ou=roles
+ │ └─ou=perms
+```
-------------------------------------------------------------------------------
## SECTION 3. How the APIs work
The tenant id is passed during object instantiation.
```
- AdminMgr adminMgr = AdminMgrFactory.createInstance( "acme123" );
+ AdminMgr adminMgr = AdminMgrFactory.createInstance( "acme" );
```
The lifecycle of that particular object will be on behalf of that tenant id.
@@ -82,17 +98,17 @@ The tenant id is passed during object instantiation.
```
...
<addcontainer>
- <container name="acme123" description="ACME 123 tenant context"/>
+ <container name="acme" description="ACME tenant context"/>
</addcontainer>
...
```
2. Or, simply use ldif format to create the new tenant containers. Import with any LDAP client:
```
- dn: ou=acme123, dc=example,dc=com
- ou: acme123
+ dn: ou=acme, dc=example,dc=com
+ ou: acme
objectClass: organizationalUnit
- description: ACME 123 tenant context
+ description: ACME tenant context
```
3. After the new container has been added, you may use again the fortress ant load utility to initialize the new tenant Directory Information Tree (DIT). For example:
@@ -117,7 +133,7 @@ The tenant id is passed during object instantiation.
4. When running the fortress ant load, pass the tenant id as a -D parameter on the command line:
```
- mvn install -Dload.file=./ldap/setup/MyLoadFile.xml -Dtenant=acme123
+ mvn install -Dload.file=./ldap/setup/MyLoadFile.xml -Dtenant=acme
```
Passing the tenant system property scopes all subsequent load operations to that particular tenant's container inside the DIT.
@@ -128,7 +144,7 @@ ________________________________________________________________________________
Pass the tenant id as system property when running the tests:
```
- mvn test -Dtest=FortressJUnitTest -Dtenant=acme123
+ mvn test -Dtest=FortressJUnitTest -Dtenant=acme
```
Passing tenant system properties scopes all subsequent test operations to that particular tenant.
@@ -141,13 +157,13 @@ Other tools like Fortress console and CLI may be run pointing to a tenant's data
1. Fortress Console:
```
- mvn -Pconsole test -Dtenant=acme123
+ mvn -Pconsole test -Dtenant=acme
```
2. Fortress CLI:
```
- mvn -Pcli test -Dtenant=acme123
+ mvn -Pcli test -Dtenant=acme
```
___________________________________________________________________________________