diff --git a/README.md b/README.md index 7abcf3b10b9ee06c9401979bf1fc120fe8ebeab8..217f1e82578c92f7c1b1c155a0422b56adae53e9 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,15 @@ See `docs` and sub folders to learn how ESS Naming Convention is implemented in ### Environment Tools -* Java 17 (openjdk) -* Maven 3.8+ (e.g. 3.8.5) -* PostgreSQL (9.6 client lib) -* Docker (compose file version 3.7 to be supported, docker engine 20+ recommended) + +* Java 17 - openjdk +* Maven 3.8+ +* PostgreSQL - 9.6 client lib +* Docker - engine 18.06.0+ or later, compose 1.29.2 or later, compose file version 3.7 to be supported * Git Dependencies + * postgresql * springdoc * springframework @@ -40,31 +42,30 @@ In addition, Hibernate is used through Springframework. #### Start application -For first time users, recommended way to start application is with Docker and database with demo content. +For first time users, recommended way to start application is with Docker and database with demo content. See Note for more on configuration. Either with Docker -* start the application with database - * existing container +* start application & database + * existing database container * `docker-compose up --build` * empty * `docker-compose -f docker-compose-integrationtest.yml up --build` * demo content * `docker-compose -f docker-compose-demo.yml up --build` -* start the application without database - * make sure database available as in `src/main/resources/application.properties` - * have local docker compose file without postgres container * browse to `http://localhost:8080/swagger-ui.html` or with `java -jar` * make sure database available as in `src/main/resources/application.properties` -* start the application +* start application * `java -jar target/naming-backend-*.jar` * browse to `http://localhost:8083/swagger-ui.html` #### Integration tests with Docker containers +Purpose of integration tests is to ensure REST API works as expected for parts and as a whole by running tests against running instances of application and database. + See `src/test/java` and packages * `org.openepics.names.docker` * `org.openepics.names.docker.complex` @@ -84,9 +85,13 @@ Thereafter a number of http requests (GET) and curl commands (POST, PUT, PATCH, * *Do not* * *commit sensitive data* - * *modify docker-compose files unless necessary* -* `application.properties` available in both ´src/main/resources´ and `src/test/resources`. Key difference is that in-memory database is used in test. -* Flyway not (yet) used + * *modify application properties and docker-compose files unless necessary - there are multiple dependencies* +* Not yet + * Authentication / Authorization + * Flyway +* Configuration + * Application and database may be started separately, with or without Docker, in which case configuration set by environment variables, docker compose files and `application.properties` must reflect this. An example of this is hostname/ip address/port for database that is to be available for application. Configuration must not be in conflict with environment in which application and database run. +* If tools need to be installed or upgraded, recommendation is to install or upgrade to most recent versions that are available, unless otherwise stated. * Pre-populated database to be available if data to be available at start of application. Otherwise database may be populated through `curl` at command line or Swagger UI. * See `src/test/resources` and sub folders for database scripts. This includes scripts for database schema, migration and example content. * If no prior database is available, see integration tests for examples on how to populate database. E.g. tests may be debugged and database content may be examined at any debug point. It's possible to backup database at such debug point and later restore it outside test. In such way, database may be set to state of choice. diff --git a/docs/about/naming_architecture_code.odt b/docs/about/naming_architecture_code.odt index 22983ee9f8f71fd1c3a91369296edd564c4c0d05..afd6964ed9a28c51e50d6a903af62021ddea5dbe 100644 Binary files a/docs/about/naming_architecture_code.odt and b/docs/about/naming_architecture_code.odt differ diff --git a/docs/about/naming_architecture_code.pdf b/docs/about/naming_architecture_code.pdf index 438c384565c25a0c16bb6a38f8ab6e96bd4798e2..42d7e00b6e164199a9d26859965c42f429aa07c4 100644 Binary files a/docs/about/naming_architecture_code.pdf and b/docs/about/naming_architecture_code.pdf differ