Skip to content
Snippets Groups Projects
Commit 7856b94a authored by Benguria Elguezabal, Gorka's avatar Benguria Elguezabal, Gorka
Browse files

Release M12

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 1074 additions and 0 deletions
ADMIN_USER=admin
ADMIN_PASSWORD=projectPassword
USER=vagrant
USER_UID=1000
USER_GID=1000
BASE_BUILD_IMAGE=registry.docker.cache.192.168.56.5.nip.io/maven:3.8.1-openjdk-17-slim
SERVER_HOST=192.168.56.5.nip.io
\ No newline at end of file
ARG BASE_BUILD_IMAGE=maven:3.8.1-openjdk-17-slim
# ARG BASE_RUN_IMAGE=eclipse-temurin:17-jre-jammy
FROM $BASE_BUILD_IMAGE AS builder
# https://code.visualstudio.com/remote/advancedcontainers/add-nonroot-user
# Create the user
ARG USERNAME=user-name-goes-here
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN <<EOF
addgroup --gid $USER_GID $USERNAME
adduser --uid $USER_UID --ingroup $USERNAME --disabled-password --gecos "" $USERNAME
echo "export PATH=/home/vagrant/.local/bin:$PATH" >> /home/$USERNAME/.profile
EOF
# [Optional] Add sudo support. Omit if you don't need to install software after connecting.
RUN <<EOF
apt-get update
apt-get install -y sudo
rm -rf /var/lib/apt/lists/*
echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME
chmod 0440 /etc/sudoers.d/$USERNAME
EOF
# ********************************************************
# * Anything else you want to do like clean up goes here *
# ********************************************************
RUN <<EOF
apt-get update
apt-get install -y \
dnsutils \
iputils-ping \
curl \
jq
rm -rf /var/lib/apt/lists/*
EOF
EXPOSE 8081
# ********************************************************
# * configure the development user *
# ********************************************************
RUN <<EOF
# if /root/.m2 exists mv to /home/$USERNAME/.m2
if [ -d /root/.m2 ]
then
mv /root/.m2 /home/$USERNAME
chown -R $USERNAME:$USERNAME /home/$USERNAME/.m2
fi
# if /root/.npmrc exists mv to /home/$USERNAME
if [ -f /root/.npmrc ]
then
mv /root/.npmrc /home/$USERNAME
chown $USERNAME:$USERNAME /home/$USERNAME/.npmrc
fi
# if /root/.yarnrc.yml exists mv to /home/$USERNAME
if [ -f /root/.yarnrc.yml ]
then
mv /root/.yarnrc.yml /home/$USERNAME
chown $USERNAME:$USERNAME /home/$USERNAME/.yarnrc.yml
fi
mkdir -p /home/$USERNAME/code
chown -R $USERNAME:$USERNAME /home/$USERNAME/code
mkdir -p /usr/share/maven/ref/repository
chmod -R 777 /usr/share/maven/ref/repository
EOF
# [Optional] Set the default user. Omit if you want to keep the default as root.
USER $USERNAME
# ********************************************************
# * Required packages by concrete application *
# ********************************************************
WORKDIR /home/$USERNAME/code
# download maven dependencies
COPY pom.xml pom.xml
ARG SPRING_PROFILES_ACTIVE=prod,api-docs,webapp
RUN <<EOF
sudo chown -R $USERNAME:$USERNAME pom.xml
# mvn -P$SPRING_PROFILES_ACTIVE dependency:go-offline --batch-mode
# it does not get all dependencies
mvn -P$SPRING_PROFILES_ACTIVE org.apache.maven.plugins:maven-dependency-plugin:3.7.1:go-offline --batch-mode
# it uses a greater version get more deps, but it does not get all dependencies either
mvn -P$SPRING_PROFILES_ACTIVE de.qaware.maven:go-offline-maven-plugin:resolve-dependencies --batch-mode
# this is a workaround to get the dependencies that are not downloaded by the previous commands, but it does not get all dependencies either
mvn -DgroupId=org.codehaus.plexus -DartifactId=plexus-utils -Dversion=1.1 dependency:get --batch-mode
EOF
# ********************************************************
# * Copy final setup *
# ********************************************************
COPY .devcontainer/setup.sh /setup.sh
RUN <<EOF
sudo chmod +x /setup.sh
EOF
# devcontainer java piacere pmc
.devcontainer configuration for the piacere pmc project. It uses docker-compose to start a container specifyng the network were the other containers are running. It mimics the the name and the traefik labels of the production container so that the devcontainer can be reached at the same address of the production container. This is useful to test the devcontainer in a production-like environment.
It requires some environment variables to be set in the host machine:
- SERVER_HOST: the hostname of the server where the devcontainer is running to configure traefik labels
- ADMIN_USER: the username of the admin user to configure grafana
- ADMIN_PASSWORD: the password of the admin user to configure grafana
- USER: the username of the user running the devcontainer. This is required to set the correct permissions on the files created by the devcontainer
- USER_UID: the uid of the user running the devcontainer. This is required to set the correct permissions on the files created by the devcontainer
- USER_GID: the gid of the user running the devcontainer. This is required to set the correct permissions on the files created by the devcontainer
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-dockerfile
{
"name": "RcmBackend",
// Update the 'dockerComposeFile' list if you have more compose files or use different names.
"dockerComposeFile": "docker-compose.yaml",
// The 'service' property is the name of the service for the container that VS Code should
// use. Update this value and .devcontainer/docker-compose.yml to the real service name.
"service": "rcm-backend",
// The 'workspaceFolder' property is the path VS Code should open by default when
// connected. Corresponds to a volume mount in .devcontainer/docker-compose.yaml
"workspaceFolder": "/workspace",
"customizations": {
"vscode": {
// Set *default* container specific settings.json values on container create.
// "settings": {
// "java.jdt.ls.java.home": "/docker-java-home"
// },
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"angular.ng-template",
"christian-kohler.npm-intellisense",
"firsttris.vscode-jest-runner",
"ms-vscode.vscode-typescript-tslint-plugin",
"dbaeumer.vscode-eslint",
"vscjava.vscode-java-pack",
"pivotal.vscode-boot-dev-pack",
"esbenp.prettier-vscode"
]
}
}
// Uncomment the next line to run commands after the container is created.
// Uncomment the next line if you want to keep your containers running after VS Code shuts down.
// "shutdownAction": "none",
// Uncomment the next line to use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",
// "build": {
// // Sets the run context to one level up instead of the .devcontainer folder.
// "context": ".",
// // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
// "dockerfile": "./Dockerfile",
// // https://github.com/microsoft/vscode-remote-release/issues/3545#issuecomment-1168829046
// "args": {
// // https://containers.dev/implementors/json_reference/
// "USERNAME": "${localEnv:USER}",
// // add USER_UID="$(id -u)" and USER_GID="$(id -g)" to .profile
// "USER_UID": "${localEnv:USER_UID}",
// "USER_GID": "${localEnv:USER_GID}"
// }
// }
// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},
// "features": {
// "docker-in-docker": "latest",
// "docker-from-docker": "latest"
// }
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Uncomment the next line to run commands after the container is created.
// "postCreateCommand": "cat /etc/os-release",
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root.
//, "remoteUser": "vagrant"
}
services:
rcm-backend:
# Using a Dockerfile is optional, but included for completeness.
build:
context: ..
dockerfile: .devcontainer/Dockerfile
# [Optional] You can use build args to set options. e.g. 'VARIANT' below affects the image in the Dockerfile
args:
USERNAME: ${USER:?err}
USER_UID: ${USER_UID:?err}
USER_GID: ${USER_GID:?err}
BASE_BUILD_IMAGE: ${BASE_BUILD_IMAGE:?err}
SPRING_PROFILES_ACTIVE: dev,api-docs
environment:
SPRING_CLOUD_CONSUL_HOST: consul
SPRING_CLOUD_CONSUL_PORT: 8500
SPRING_LIQUIBASE_URL: jdbc:mariadb://mariadb:3306/rcmBackend?useLegacyDatetimeCode=false
SPRING_R2DBC_URL: r2dbc:mysql://mariadb:3306/rcmBackend?useLegacyDatetimeCode=false
SPRING_R2DBC_USERNAME: emerald_developer
SPRING_R2DBC_PASSWORD: ${ADMIN_PASSWORD:?err}
SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUERURI: https://auth.${SERVER_HOST:?err}/realms/emerald-dev
SERVER_FORWARDHEADERSSTRATEGY: framework
SPRING_PROFILES_ACTIVE: dev,api-docs
SPRING_DATASOURCE_URL: jdbc:mariadb://mariadb:3306/rcmBackend?useLegacyDatetimeCode=false
SPRING_DATASOURCE_USERNAME: emerald_developer
SPRING_DATASOURCE_PASSWORD: ${ADMIN_PASSWORD:?err}
SPRING_DATASOURCE_DRIVER_CLASS_NAME: org.mariadb.jdbc.Driver
MANAGEMENT_ZIPKIN_TRACING_ENDPOINT: http://zipkin:9411/api/v2/spans
volumes:
# This is where VS Code should expect to find your project's source code and the value of "workspaceFolder" in .devcontainer/devcontainer.json
- ..:/workspace:cached
# Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details.
# - /var/run/docker.sock:/var/run/docker.sock
# Overrides default command so things don't shut down after the process ends.
command: /bin/sh -c "sudo /setup.sh $USER; while sleep 1000; do :; done"
# Runs app on the same network as the service container, allows "forwardPorts" in devcontainer.json function.
# network_mode: service:another-service
# Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
# (Adding the "ports" property to this file will not forward from a Codespace.)
# Uncomment the next line to use a non-root user for all processes - See https://aka.ms/vscode-remote/containers/non-root for details.
# user: vscode
# Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust.
# cap_add:
# - SYS_PTRACE
# security_opt:
# - seccomp:unconfined
networks:
traefik_network: null
# external_links:
# - traefik:rsync.192.168.56.1.nip.io
labels:
- "traefik.docker.network=traefik_network"
- "traefik.enable=true"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME:?err}-rcm-backend.rule=Host(`backend.rcm.${SERVER_HOST:?err}`)"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME:?err}-rcm-backend.entrypoints=websecure"
# You can include other services not opened by VS Code as well
# another-service:
# image: mongo:latest
# restart: unless-stopped
# As in the "app" service, use "forwardPorts" in **devcontainer.json** to forward an app port locally.
networks:
traefik_network:
name: traefik_network
external: true
{
"terminal.integrated.shell.linux": "/bin/bash"
}
#!/bin/bash
set -e
USERNAME=$1
if [ -z "$USERNAME" ]; then
USERNAME=root
fi
# if /.setup_done does not exist then run setup
if [ ! -f /.setup_done ]; then
echo "setup dependencies"
su - $USERNAME <<-EOF
cd /workspace
mvn -o generate-resources -P$SPRING_PROFILES_ACTIVE -Dmaven.test.skip=true -Dmaven.gitcommitid.skip=true
EOF
touch /.setup_done
fi
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
# We recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
# Change these settings to your own preference
indent_style = space
indent_size = 4
[*.{ts,tsx,js,jsx,json,css,scss,yml,html,vue}]
indent_size = 2
[*.md]
trim_trailing_whitespace = false
# This file is inspired by https://github.com/alexkaratarakis/gitattributes
#
# Auto detect text files and perform LF normalization
# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/
* text=auto
# The above will handle all files NOT found below
# These files are text and should be normalized (Convert crlf => lf)
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
*.coffee text
*.css text
*.cql text
*.df text
*.ejs text
*.html text
*.java text
*.js text
*.json text
*.less text
*.properties text
*.sass text
*.scss text
*.sh text eol=lf
*.sql text
*.txt text
*.ts text
*.xml text
*.yaml text
*.yml text
# Documents
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.markdown text
*.md text
*.adoc text
*.textile text
*.mustache text
*.csv text
*.tab text
*.tsv text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
copyright text
*COPYRIGHT* text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text
# Graphics
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.tif binary
*.tiff binary
*.ico binary
# SVG treated as an asset (binary) by default. If you want to treat it as text,
# comment-out the following line and uncomment the line after.
*.svg binary
#*.svg text
*.eps binary
# These files are binary and should be left untouched
# (binary is a macro for -text -diff)
*.class binary
*.jar binary
*.war binary
## LINTERS
.csslintrc text
.eslintrc text
.jscsrc text
.jshintrc text
.jshintignore text
.stylelintrc text
## CONFIGS
*.conf text
*.config text
.editorconfig text
.gitattributes text
.gitconfig text
.gitignore text
.htaccess text
*.npmignore text
## HEROKU
Procfile text
.slugignore text
## AUDIO
*.kar binary
*.m4a binary
*.mid binary
*.midi binary
*.mp3 binary
*.ogg binary
*.ra binary
## VIDEO
*.3gpp binary
*.3gp binary
*.as binary
*.asf binary
*.asx binary
*.fla binary
*.flv binary
*.m4v binary
*.mng binary
*.mov binary
*.mp4 binary
*.mpeg binary
*.mpg binary
*.swc binary
*.swf binary
*.webm binary
## ARCHIVES
*.7z binary
*.gz binary
*.rar binary
*.tar binary
*.zip binary
## FONTS
*.ttf binary
*.eot binary
*.otf binary
*.woff binary
*.woff2 binary
######################
# Node
######################
/node/
node_tmp/
node_modules/
npm-debug.log.*
/.awcache/*
/.cache-loader/*
######################
# SASS
######################
.sass-cache/
######################
# Eclipse
######################
*.pydevproject
.project
.metadata
tmp/
tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
.factorypath
# External tool builders
.externalToolBuilders/**
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
# STS-specific
/.sts4-cache/*
######################
# IntelliJ
######################
.idea/
*.iml
*.iws
*.ipr
*.ids
*.orig
classes/
out/
######################
# Visual Studio Code
######################
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
######################
# Maven
######################
/log/
/target/
######################
# Gradle
######################
.gradle/
/build/
/buildSrc/.gradle/
/buildSrc/build/
######################
# Package Files
######################
*.jar
*.war
*.ear
*.db
######################
# Windows
######################
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
######################
# Mac OSX
######################
.DS_Store
.svn
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
######################
# Directories
######################
/bin/
/deploy/
######################
# Logs
######################
*.log*
######################
# Others
######################
*.class
*.*~
*~
.merge_file*
######################
# Gradle Wrapper
######################
!gradle/wrapper/gradle-wrapper.jar
######################
# Maven Wrapper
######################
!.mvn/wrapper/maven-wrapper.jar
######################
# ESLint
######################
.eslintcache
######################
# Code coverage
######################
/coverage/
/.nyc_output/
######################
# Ensure that the .devcontainer and .vscode folder is not ignored
######################
!/.devcontainer/
!/.vscode/
######################
\ No newline at end of file
5cfb9766f35d8ffbfc351cfdbb8c3ae5c88aedcc:src/main/docker/realm-config/jhipster-realm.json:generic-api-key:514
5cfb9766f35d8ffbfc351cfdbb8c3ae5c88aedcc:src/main/docker/realm-config/jhipster-realm.json:generic-api-key:546
5cfb9766f35d8ffbfc351cfdbb8c3ae5c88aedcc:src/main/docker/realm-config/jhipster-realm.json:generic-api-key:587
5cfb9766f35d8ffbfc351cfdbb8c3ae5c88aedcc:src/main/docker/realm-config/jhipster-realm.json:generic-api-key:617
5cfb9766f35d8ffbfc351cfdbb8c3ae5c88aedcc:src/main/docker/realm-config/jhipster-realm.json:generic-api-key:691
\ No newline at end of file
{
"annotations": {
"changelogDate": "20240723100125"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "acronym",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "name",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "type",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "description",
"fieldType": "byte[]",
"fieldTypeBlobContent": "text",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "CloudService",
"relationships": [
{
"otherEntityField": "name",
"otherEntityName": "resource",
"otherEntityRelationshipName": "cloudService",
"relationshipName": "resource",
"relationshipSide": "left",
"relationshipType": "one-to-many",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "cloudServiceProvider",
"otherEntityRelationshipName": "cloudService",
"relationshipName": "cloudServiceProvider",
"relationshipSide": "right",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "securityControlFramework",
"otherEntityRelationshipName": "cloudService",
"relationshipName": "securityControlFramework",
"relationshipSide": "right",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240723100126"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "acronym",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "name",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "contactDetails",
"fieldType": "byte[]",
"fieldTypeBlobContent": "text",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "CloudServiceProvider",
"relationships": [
{
"otherEntityField": "name",
"otherEntityName": "cloudService",
"otherEntityRelationshipName": "cloudServiceProvider",
"relationshipName": "cloudService",
"relationshipSide": "left",
"relationshipType": "one-to-many",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240725083449"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "code",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "question",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "defaultEvidence",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "defaultComment",
"fieldType": "String",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "Question",
"relationships": [
{
"otherEntityField": "assuranceLevel",
"otherEntityName": "questionAssuranceLevel",
"relationshipName": "questionAssuranceLevel",
"relationshipSide": "left",
"relationshipType": "many-to-one"
},
{
"otherEntityField": "name",
"otherEntityName": "securityControl",
"relationshipName": "securityControl",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "tom",
"relationshipName": "tom",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "securityControlFramework",
"relationshipName": "securityControlFramework",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240725083450"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "answer",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "value",
"fieldType": "Integer",
"fieldValidateRules": ["required"]
},
{
"fieldName": "visible",
"fieldType": "Boolean",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "QuestionAnswer",
"relationships": [],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240725083451"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "assuranceLevel",
"fieldType": "String",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "QuestionAssuranceLevel",
"relationships": [],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240725083452"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "name",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "evidences",
"fieldType": "byte[]",
"fieldTypeBlobContent": "text",
"fieldValidateRules": ["required"]
},
{
"fieldName": "comments",
"fieldType": "byte[]",
"fieldTypeBlobContent": "text",
"fieldValidateRules": ["required"]
},
{
"fieldName": "lastUpdate",
"fieldType": "Instant",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "Questionnaire",
"relationships": [
{
"otherEntityField": "name",
"otherEntityName": "securityControlFramework",
"relationshipName": "securityControlFramework",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "securityControl",
"relationshipName": "securityControl",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "assuranceLevel",
"otherEntityName": "questionAssuranceLevel",
"relationshipName": "questionAssuranceLevel",
"relationshipSide": "left",
"relationshipType": "many-to-one"
},
{
"otherEntityField": "code",
"otherEntityName": "question",
"relationshipName": "question",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "answer",
"otherEntityName": "questionAnswer",
"relationshipName": "questionAnswer",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "login",
"otherEntityName": "user",
"relationshipName": "user",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required",
"relationshipWithBuiltInEntity": true
}
],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240725083453"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "questionnaireName",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "comments",
"fieldType": "byte[]",
"fieldTypeBlobContent": "text",
"fieldValidateRules": ["required"]
},
{
"fieldName": "compliance",
"fieldType": "String",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "QuestionnaireNonConformity",
"relationships": [
{
"otherEntityField": "name",
"otherEntityName": "tom",
"relationshipName": "tom",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240723100127"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "referenceTomImpl",
"fieldType": "String",
"fieldValidateRules": ["required"]
}
],
"microserviceName": "rcmBackend",
"name": "ReferenceTom",
"relationships": [
{
"otherEntityField": "name",
"otherEntityName": "tom",
"relationshipName": "tom",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no"
}
{
"annotations": {
"changelogDate": "20240723100128"
},
"applications": "*",
"clientRootFolder": "rcmBackend",
"databaseType": "sql",
"fields": [
{
"fieldName": "acronym",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "name",
"fieldType": "String",
"fieldValidateRules": ["required"]
},
{
"fieldName": "confidentialityRisk",
"fieldType": "String"
},
{
"fieldName": "availabilityRisk",
"fieldType": "String"
},
{
"fieldName": "integrityRisk",
"fieldType": "String"
}
],
"microserviceName": "rcmBackend",
"name": "Resource",
"relationships": [
{
"otherEntityField": "value",
"otherEntityName": "targetValue",
"relationshipName": "targetValue",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "resourceType",
"relationshipName": "resourceType",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "cloudService",
"otherEntityRelationshipName": "resource",
"relationshipName": "cloudService",
"relationshipSide": "right",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "name",
"otherEntityName": "securityControl",
"otherEntityRelationshipName": "resource",
"relationshipName": "securityControl",
"relationshipSide": "right",
"relationshipType": "many-to-many"
}
],
"searchEngine": "no"
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment