You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Database creation scripts** for roles, schemas, tables, constraints, indexes, functions, and
36
+
-**Scripted lookup/reference data**, e.g. EntityType (Person, Organization, OrganizationalUnit, Employee, etc), EntitySubtype (Organization - C Corp, S Corp, LLC, etc, OrganizationalUnit - Region, Division, Department, etc), etc,
37
37
- A Dockerized, **REST**ful **business entity microservice** (BEM) providing
38
38
-**C**reate,
39
39
-**R**ead,
40
40
-**U**pdate, and
41
41
-**D**elete (**CRUD**) operations,
42
-
- A Dockerized, **REST**ful **system data service** (SDS) providing
43
-
- Create **N**ew,
44
-
-**C**lone Existing,
45
-
-**P**ublish, and
46
-
-**U**pdate entity, attribute, and association process operations,
42
+
- A Dockerized, **REST**ful **system data service** (SDS) providing the capability to
43
+
- Create **N**ew business entity definition,
44
+
-**C**lone Existing business entity definition,
45
+
- Create New business entity **A**ttribute,
46
+
-**A**ssociate business entity attribute with business entity definition(s),
47
+
-**P**ublish entities, attributes, and associations, thereby creating corresponding new database schemas, tables, constraints, indexes, etc, and
48
+
-**U**pdate the published status of entities, attributes, and associations,
47
49
- And **SwaggerDoc****OpenAPI** application programming interface (API) **documentation**.
48
50
49
51
@@ -57,25 +59,29 @@
57
59
58
60
**Features**
59
61
- Containerized. Services run in Docker containers, available from DockerHub.
62
+
<!---->
60
63
- The business entity microservice (**BEM**):
61
-
-**Validates each HTTP request** using a JSON Web Token (**JWT**) mechanism with optional cryptographic signing and encryption capabilities,
64
+
-**Will validate each HTTP request** (near future) using a JSON Web Token (**JWT**) mechanism with optional cryptographic signing and encryption capabilities,
62
65
-**Persists and retrieves business entity data** via its **API**, which calls low-level `POST`, `GET`, `PATCH`, and “soft” DELETE database functions to ensure data integrity and performance -- **NO direct table access**,
63
66
-**Consistently follows RESTful style and best practices**,
64
-
-**Returns standard and appropriate HTTP response codes**, e.g. `200 OK`, `201 Created`, `400 Bad Request`, `401 Unauthorized`, `404 Not Found`, `500 Internal Server Error`, etc
67
+
-**Returns standard and appropriate HTTP response codes**, e.g. `200 OK`, `201 Created`, `400 Bad Request`, `401 Unauthorized`, `404 Not Found`, `422 Unprocessable Entity`, `500 Internal Server Error`, etc
65
68
-**Accepts and returns structured JSON resource/entity data** in HTTP request/response bodies as specified for each business entity, and
66
69
<!-- - **Includes** `entities` **in the request URL**, e.g. `/entities/organization/1234`, to partition low-level resource/entity operations from future high-level process invocation, e.g. `/processes/InformationSystem/RegisterInformationSystemUser/` -->
67
70
- The system data service (**SDS**):
68
-
-**Validates each HTTP request** using a JSON Web Token (**JWT**) mechanism with optional cryptographic signing and encryption capabilities,
69
-
-**Enables authorized entity Modelers and Publishers** to define new EntityTypeDefinitions, EntityTypeAttribtues, and EntityTypeDefinitionEntityTypeAttributeAssociations via its **API**, which calls high-level process `POST` and low-level `POST`, `PATCH`, and “soft” DELETE database functions to add (or "publish") these new entities, attributes, and associations to the database, resulting in new model-driven data structures, e.g. SCHEMAs, TABLEs, COLUMNs, CONSTRAINTs, INDEXs, etc -- **NO direct table access**,
71
+
-**Will validate each HTTP request** (near future) using a JSON Web Token (**JWT**) mechanism with optional cryptographic signing and encryption capabilities,
72
+
-**Enables authorized entity Modelers and Publishers** to define new EntityTypeDefinitions, EntityTypeAttribtues, and EntityTypeDefinitionEntityTypeAttributeAssociations via its **API**, which calls high-level process `POST` and low-level entity `POST`, `PATCH`, and “soft” DELETE database functions to add (or "publish") these new entities, attributes, and associations to the database, resulting in new model-driven data structures, e.g. SCHEMAs, TABLEs, COLUMNs, CONSTRAINTs, INDEXs, etc,
70
73
-**Consistently follows RESTful style and best practices**,
71
-
-**Returns standard and appropriate HTTP response codes**, e.g. `200 OK`, `201 Created`, `400 Bad Request`, `401 Unauthorized`, `404 Not Found`, `500 Internal Server Error`, etc
74
+
-**Returns standard and appropriate HTTP response codes**, e.g. `200 OK`, `201 Created`, `400 Bad Request`, `401 Unauthenticated`, `404 Not Found`, `422 Unprocessable Entity`, 500 Internal Server Error`, etc
72
75
-**Accepts and returns structured JSON resource/entity data** in HTTP request/response bodies as specified for each business entity, and
73
76
<!-- - **Includes** `processes` **in the request URL**, e.g. `/processes/organization/1234`, to partition low-level resource/entity operations from future high-level process invocation, e.g. `/processes/InformationSystem/RegisterInformationSystemUser/` -->
74
77
75
78
76
79
**Rules**
77
80
-**The custom database roles**, e.g. AafCoreOwner, AafCoreDataReadWrite, etc, **are to be used appropriately** (as designed and demonstrated in this project) **to improve data security**.
78
81
-**The current set of business entities and their descriptions can be retrieved** using the `GetEntityTypeDefinitions` database function and includes:
-**The set of "origin" (*) business entities can produce other business entities and their corresponding database structures**
91
98
-**The current set of business entity attributes and their descriptions can be retrieved** using the `GetEntityTypeAttributes` database function and includes:
92
99
-*`Id``bigint`
93
100
-*`Uuid``uuid`
@@ -154,14 +161,14 @@ Before running the EntityDataMicroservice, you must:
Please **note** that **this first AAF Data release is primarily for demonstration and evaluation purposes**. It supports very simple local (LOC) and minimal (MIN) environments and **is not intended to be used in a production environment**. **Later releases** will support shared development (DEV), staging (STG), and production (PRD) environments and **will utilize secrets management and other security best practices**. Crawl, walk, run.
164
+
Please **note** that **this second AAF Data release is primarily for demonstration and evaluation purposes**. It supports very simple local (LOC) and minimal (MIN) remote/cloud environments and **is not intended to be used in a production environment**. **Later releases** will support shared, remote/cloud development (DEV), staging (STG), and production (PRD) environments and **will utilize secrets management and other security best practices**. Crawl, walk, run.
158
165
159
166
2.**Run the EntityDataMicroservice**:
160
167
1.**Locally** in IDE:
161
168
1.**Open** the `aafdata` project in **IntelliJ IDEA**.
162
169
1.**Run** the `EntityDataMicroservice` class.
163
170
1.**Locally** from the command line:
164
-
1. Set the profile environment variable with `export spring_profiles_active=min` (NOTE: Remove it with `unset spring_profiles_active`)
171
+
1. Set the profile environment variable with `export spring_profiles_active=loc` (NOTE: Remove it with `unset spring_profiles_active`)
165
172
1.**Change directory** (`cd`) to `aafdata/EntityDataMicroservice/`.
166
173
1.**Build** the project:
167
174
```sh
@@ -174,15 +181,44 @@ Please **note** that **this first AAF Data release is primarily for demonstratio
174
181
1. **In Docker**:
175
182
1. Set the profile environment variable with `export spring_profiles_active=min` (NOTE: Remove it with `unset spring_profiles_active`)
176
183
1. **Build** a Docker image with `docker build -t deceptivelysimpletechnologies/aafdata-entitydatamicroservice:$(date +%Y%m%d_%H%M%S) .`
<p align="right">(<a href="#top">back to top</a>)</p>
@@ -192,7 +228,7 @@ Please **note** that **this first AAF Data release is primarily for demonstratio
192
228
<!-- USAGE EXAMPLES -->
193
229
## Usage
194
230
195
-
A completeset of Postman requests is included with the source code at `aafdata/client/DST AAF Data.postman_collection.json`.
231
+
A completeset of Postman requests for both EDM and SDS services is included with the source code at `aafdata/client/DST AAF Data.postman_collection.json`.
196
232
197
233
<p align="right">(<a href="#top">back to top</a>)</p>
198
234
@@ -231,7 +267,7 @@ A complete set of Postman requests is included with the source code at `aafdata/
231
267
<a href="#how-are-the-aaf-models-represented-in-the-data-layer">How Are the AAF Models Represented in the Data Layer?</a>
Copy file name to clipboardExpand all lines: SystemDataService/src/main/java/com/dsimpletech/aafdata/SystemDataService/controller/BusinessEntityController.java
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1294,6 +1294,8 @@ public ResponseEntity<String> PublishBusinessEntitys(@PathVariable("databaseName
1294
1294
//TODO: * AAF-90 Check response body for success
1295
1295
1296
1296
logger.info("New table " + unpublishedEntityTypeDefinitions.get(i).getLocalizedName() + " created in " + databaseName);
1297
+
1298
+
//TODO: *** Insert new entity into EntityType table
1297
1299
}
1298
1300
1299
1301
logger.info(unpublishedEntityTypeAssociations.size() + " EntityTypeDefinitionEntityTypeAttributeAssociations published in " + databaseName);
0 commit comments