Commit 65a0855c authored by RTI Almaviva2's avatar RTI Almaviva2

inizializzazione progetto Gestore Pratiche

parent 6faf00c0
Pipeline #121 canceled with stages

Too many changes to show.

To preserve performance only 1000 of ${real_size} files are displayed.

.history
.idea
target
*.iml
activemq-data
sources/api/.project
sources/api/*/target/.project
sources/api/*/target/.classpath
sources/api/gestionepratiche-data/.classpath
sources/api/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-data/.project
sources/api/gestionepratiche-data/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-data/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-data/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-data/target/classes/it/almaviva/gestionepratiche/data/SampleDataRepository.class
sources/api/gestionepratiche-data/target/classes/it/almaviva/gestionepratiche/data/UserRepository.class
sources/api/gestionepratiche-data/target/classes/it/almaviva/gestionepratiche/data/entities/SampleData.class
sources/api/gestionepratiche-data/target/classes/it/almaviva/gestionepratiche/data/entities/User.class
sources/api/gestionepratiche-services/.classpath
sources/api/gestionepratiche-services/.project
sources/api/gestionepratiche-services/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-services/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-services/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/models/SampleModel.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/models/UserModel.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/models/mappers/SampleDataMapper.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/models/mappers/SampleDataMapper$1.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/models/mappers/UserMapper.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/models/mappers/UserMapper$1.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/services/SampleService.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/services/SampleServiceImpl.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/services/UserService.class
sources/api/gestionepratiche-services/target/classes/it/almaviva/gestionepratiche/services/UserServiceImpl.class
sources/api/gestionepratiche-web/.project
sources/api/gestionepratiche-web/.settings/org.eclipse.core.resources.prefs
sources/api/gestionepratiche-web/.settings/org.eclipse.m2e.core.prefs
/sources/api/gestionepratiche-web/target
/sources/api/gestionepratiche-web/.classpath
/sources/api/gestionepratiche-web/.project
/sources/api/gestionepratiche-services/.classpath
/sources/api/gestionepratiche-services/.project
/sources/api/gestionepratiche-services/target
/sources/api/gestionepratiche-data/.classpath
/sources/api/gestionepratiche-data/.project
/sources/api/gestionepratiche-data/target
sources/api/gestionepratiche-web/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-web/.settings/org.eclipse.jdt.core.prefs
/sources/api/gestionepratiche-connectors-api/.project
/sources/api/gestionepratiche-connectors-api/target
/sources/api/gestionepratiche-connectors-api/.classpath
/sources/api/gestionepratiche-workflow-connector-api/target
/sources/api/gestionepratiche-workflow-connector-api/.classpath
/sources/api/gestionepratiche-workflow-connector-api/.project
/sources/api/gestionepratiche-workflow-connector-camunda/target
/sources/api/gestionepratiche-workflow-connector-camunda/.classpath
/sources/api/gestionepratiche-workflow-connector-camunda/.project
sources/api/gestionepratiche-connectors-api/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-connectors-api/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-connectors-api/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-workflow-connector-api/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-workflow-connector-api/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-workflow-connector-api/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-workflow-connector-camunda/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-workflow-connector-camunda/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-workflow-connector-camunda/.settings/org.eclipse.m2e.core.prefs
/sources/public-client-mockup/node_modules
/sources/api/gestionepratiche-document-connector-api/.project
/sources/api/gestionepratiche-document-connector-api/target
/sources/api/gestionepratiche-document-connector-api/.classpath
/sources/api/gestionepratiche-document-connector-alfresco-cm/target
/sources/api/gestionepratiche-document-connector-alfresco-cm/.classpath
/sources/api/gestionepratiche-document-connector-alfresco-cm/.project
/sources/api/gestionepratiche-document-connector-embedded/target
/sources/api/gestionepratiche-document-connector-embedded/.classpath
/sources/api/gestionepratiche-document-connector-embedded/.project
/sources/api/gestionepratiche-tasks/.project
/sources/api/gestionepratiche-tasks/target
/sources/api/gestionepratiche-tasks/.classpath
/sources/formio-extender/dist
/sources/formio-extender/node_modules
sources/public-client-mockup/dist/main.js
sources/api/gestionepratiche-document-connector-alfresco-cm/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-document-connector-alfresco-cm/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-document-connector-alfresco-cm/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-document-connector-api/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-document-connector-api/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-document-connector-api/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-document-connector-embedded/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-document-connector-embedded/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-document-connector-embedded/.settings/org.eclipse.m2e.core.prefs
sources/api/gestionepratiche-tasks/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-tasks/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-tasks/.settings/org.eclipse.m2e.core.prefs
/sources/api/plugins/simmel2-service-plugin/.project
/sources/api/plugins/simmel2-service-plugin/target
/sources/api/plugins/simmel2-service-plugin/.classpath
/sources/api/gestionepratiche-service-plugin-api/.project
/sources/api/gestionepratiche-service-plugin-api/target
/sources/api/gestionepratiche-service-plugin-api/.classpath
sources/api/gestionepratiche-service-plugin-api/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/gestionepratiche-service-plugin-api/.settings/org.eclipse.jdt.core.prefs
sources/api/gestionepratiche-service-plugin-api/.settings/org.eclipse.m2e.core.prefs
sources/api/plugins/simmel2-service-plugin/.settings/org.eclipse.jdt.apt.core.prefs
sources/api/plugins/simmel2-service-plugin/.settings/org.eclipse.jdt.core.prefs
sources/api/plugins/simmel2-service-plugin/.settings/org.eclipse.m2e.core.prefs
/sources/api/gestionepratiche-converters/target
/node_modules
/package-lock.json
/sources/client/package-lock.json
/sources/client/dist
/sources/client/node_modules
/sources/api/gestionepratiche-converters/.classpath
/sources/api/gestionepratiche-converters/.project
/sources/public-client-mockup/dist/*.map
/sources/api/gestionepratiche-reporting/bin/
/sources/api/gestionepratiche-reporting/target/
/sources/api/gestionepratiche-reporting/*.classpath
/sources/formio-extender/package-lock.json
/sources/api/plugins/simel2-service-plugin/.project
/sources/api/plugins/simel2-service-plugin/target
/sources/api/plugins/simel2-service-plugin/.classpath
/sources/api/plugins/development-service-plugin/.classpath
/sources/api/plugins/development-service-plugin/.project
/sources/api/plugins/development-service-plugin/target/.gitignore
/sources/api/plugins/development-service-plugin/target/test-classes/.gitignore
/sources/api/plugins/simel2-service-plugin/.settings/org.eclipse.core.resources.prefs
/sources/api/gestionepratiche-reporting/.project
/sources/third-parties/camunda-bpm-graphql/extension-webapp/.project
/sources/third-parties/camunda-bpm-graphql/extension-webapp/target
/sources/third-parties/camunda-bpm-graphql/extension-webapp/.classpath
/sources/third-parties/camunda-bpm-graphql/extension-webapp/.settings
/sources/third-parties/camunda-bpm-graphql/extension/.settings
/sources/third-parties/camunda-bpm-graphql/extension/target
/sources/third-parties/camunda-bpm-graphql/extension/.classpath
/sources/third-parties/camunda-bpm-graphql/extension/.project
/sources/extensions/camunda-graphql-extender/camunda-graphql-extender-web/.project
/sources/extensions/camunda-graphql-extender/camunda-graphql-extender-web/target
/sources/extensions/camunda-graphql-extender/camunda-graphql-extender-web/.classpath
/sources/samples/public-client-mockup/node_modules
/sources/samples/public-client-mockup/dist
/sources/extensions/formio-extender/node_modules
/docker/camunda-graphql-extender/webapps
/sources/api/gestionepratiche-querybuilder/.classpath
/sources/api/gestionepratiche-querybuilder/.project
/sources/api/gestionepratiche-querybuilder/.settings/org.eclipse.core.resources.prefs
/sources/api/plugins/document-service-plugin/.classpath
/sources/api/plugins/document-service-plugin/.project
FROM tomcat:8.5-jre8
RUN apt-get update -y
RUN apt-get install -y wait-for-it
COPY ./deployment/support/wso2.crt ./home/
COPY ./deployment/support/spring-boot-starter-tomcat-2.6.10.jar /usr/local/tomcat/lib/spring-boot-starter-tomcat-2.6.10.jar
COPY ./sources/api/gestionepratiche-web/target/gestionepratiche.war /usr/local/tomcat/webapps/gestionepratiche.war
RUN keytool -import -trustcacerts -noprompt -file ./home/wso2.crt -alias wso2 -keystore /usr/local/openjdk-8/lib/security/cacerts -storepass changeit
\ No newline at end of file
FROM nginx:latest
COPY ./sources/client/dist/client /usr/share/nginx/html
EXPOSE 80
module.exports = function (grunt) {
grunt.initConfig({
exec: {
installApi: {
command: 'mvn -U clean install -DskipTests -PGP-war',
cwd: 'sources/api'
},
buildApiDockerImage: {
cmd: 'docker build -f Dockerfile-api . -t almaviva/gestore-pratiche-api:latest -t almaviva/gestore-pratiche-api:1.0',
cwd: '.'
},
buildClientDockerImage: {
cmd: 'docker build -f Dockerfile-client . -t almaviva/gestore-pratiche-client:latest -t almaviva/gestore-pratiche-client:1.0',
cwd: '.'
}
},
compress: {
clientDistribution: {
options: {
archive: 'client.zip'
},
files: [{
expand: true,
cwd: 'sources/client/dist/',
src: ['client/**']
}]
}
},
clean: {
client: ['sources/client/dist/**', 'client.zip'],
clientNodeModules: ['sources/client/node_modules/**'],
api: ['sources/api/gestionepratiche-web/src/main/resources/static/**']
},
'npm-command': {
installClient: {
options: {
cmd: 'install',
cwd: 'sources/client'
}
},
buildDevClient: {
options: {
cmd: 'run',
args: ['build'],
cwd: 'sources/client'
}
},
buildStagingClient: {
options: {
cmd: 'run',
args: ['build-staging'],
cwd: 'sources/client'
}
},
buildProductionClient: {
options: {
cmd: 'run',
args: ['build-production'],
cwd: 'sources/client'
}
}
}
});
grunt.loadNpmTasks('grunt-npm-command');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-exec');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.registerTask('bundle-staging', [
'clean:clientNodeModules',
'clean:client',
'clean:api',
'npm-command:installClient',
'npm-command:buildStagingClient',
'compress:clientDistribution',
'exec:installApi',
]);
grunt.registerTask('bundle-production', [
'clean:clientNodeModules',
'clean:client',
'clean:api',
'npm-command:installClient',
'npm-command:buildProductionClient',
'compress:clientDistribution',
'exec:installApi',
]);
grunt.registerTask('bundle-dev', [
'clean:clientNodeModules',
'clean:client',
'clean:api',
'npm-command:installClient',
'npm-command:buildDevClient',
'compress:clientDistribution',
'exec:installApi',
]);
grunt.registerTask('buildImages', [
'bundle',
'exec:buildApiDockerImage',
'exec:buildClientDockerImage'
]);
};
\ No newline at end of file
Gestore Pratiche
\ No newline at end of file
# User manual
Ask paolo.bertuzzo@ennova-research.com for access
https://docs.google.com/document/d/1kKlPgjWlUOgmibWbqToIiOzBZvU_BR6-IDE597F_JHc/edit#
# Development server
Run `mvn clean install -DskipTests` in project /sources/api folder
Run `npm install --save` in project /sources/client folder
Run `npm run start` in project /sources/client folder
Run `docker-compose up --build` in project root folder
Import the mysql dumps from within docker container:
- create a new database: `create database gestionepratiche;`
- import the dump: 20210107_gestionepratiche.sql (under /docker/mariadb/dumps folder)
- create a new database: `create database process-engine;`
- import the dump: 20210107_process-engine.sql (under /docker/mariadb/dumps folder)
- create a new database: `create database metabase;`
- import the dump: 20210107_metabase.sql (under /docker/mariadb/dumps folder)
#Configure WSO2
Add this entry to your hosts file
127.0.0.1 apimanager
Management console: open browser at https://apimanager:9444/carbon
Use these credentials: admin (password admin).
Publisher console: open browser at https://apimanager:9444/publisher
Use these credentials: api_publisher (password "password" without quotes).
Developer portal: open browser at https://apimanager:9444/devportal
Use these credentials: admin (password admin).
# Configure WSO2 on staging
## Import certificate on gestionepratiche BE
1) sudo keytool -import -trustcacerts -file idscomunesalerno.crt -alias idscomunesalerno -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/lib/security/cacerts -storepass changeit
2) configure on api manager new api and application
3) subscribe application with new api
4) save client and secret keys on BE application-properties
5) check if on identity server have been created service providers
## configure haproxy on gestionepratiche BE
```cgf
defaults
mode http
log global
timeout connect 25000ms
timeout client 60000ms
timeout server 60000ms
frontend http-in
bind 0.0.0.0:443 ssl crt /home/centos/haproxy/idscomunesalerno.pem
default_backend identityserver-backend
backend identityserver-backend
server identityserver 10.0.254.13:9444 check ssl verify none inter 10s
```
## Alfresco content service
See https://docs.alfresco.com/6.0/tasks/deploy-docker-compose.html and https://github.com/Alfresco/acs-deployment/blob/master/docs/docker-compose/README.md for deployment information
## Alfresco Repository configuration
### Connection to test machine
- default url for machine: http://192.168.36.170:8080
- add into column "configuration" of table service_configuration:
```json
{
"atomPubUrl": "http://192.168.36.170:8080/alfresco/api/-default-/cmis/versions/1.1/atom",
"password": "admin",
"username": "admin",
"sessionCacheName": "admin",
"repositoryName": "",
"documentSchemaName": "processInstance",
"documentSchemaPrefix": "process"
}
```
### Create Model
- See https://docs.alfresco.com/community/tasks/admintools-custom-type-create.html for specific information
- Create new Model with name "process", specify label, owner and description
### Create Properties
- Create custom property with name "processInstance", specify label, owner and description
- Open custom property "processInstance"
- Create property procedureId, specify "required property" from options, type "text", label, owner and description
- Create property instanceId, specify "required property" from options, type "text", label, owner and description
- Create property requesterIdentifier, specify "required property" form options, type "text", label, owner and description
- Create property nameIdentifier, specify "required property" form options, type "text", label, owner and description
- Create property requesterFirstName, specify "required property" form options, type "text", label, owner and description
- Create property requesterLastName, specify "required property" form options, type "text", label, owner and description
- Create property domains, specify type "text", label, owner and description
- Create property delegateUsersIdentifiers, specify type "text", label, owner and description
- Create property delegateUsersFirstNames, specify type "text", label, owner and description
- Create property delegateUsersLastNames, specify type "text", label, owner and description
- For properties set "indexing" to "Testo Libero"
- For the custom property "processInstance" apply then default layout (from tab actions select modify layout)
- The new model should be in "Active" status
## Embedded Repository configuration
- add into column "configuration" of table service_configuration:
```json
{
"indexingMessageProcessingDeliveryDelay": 60000
}
```
## Metabase
Import application database:
- create a new database: `create database metabase;`
- import the dump: 20210211_metabase.sql (under /docker/mariadb/dumps folder)
Access instance on http://localhost:3000 using test@test.com\test123 as credentials
For a full production installation having lock issues, please follow
https://www.metabase.com/docs/latest/operations-guide/running-migrations-manually.html
and run migrations under docker\mariadb folder
## Camunda
Modify default date format, add these configurations on conf/web.xml:
```xml
<listener>
<listener-class>
org.camunda.bpm.engine.rest.CustomJacksonDateFormatListener
</listener-class>
</listener>
<context-param>
<param-name>org.camunda.bpm.engine.rest.jackson.dateFormat</param-name>
<param-value>yyyy-MM-dd'T'HH:mm:ss</param-value>
</context-param>
```
trigger:
branches:
include:
- develop
- feature/*
paths:
include:
- /sources/api/*
variables:
- name: mainPomFile
value: './sources/api/pom.xml'
readonly: true
- name: mainDockerfile
value: './docker/tomcat-azure/Dockerfile'
readonly: true
- name: MAVEN_CACHE_FOLDER
value: $(Pipeline.Workspace)/.m2/repository
- name: MAVEN_OPTS
value: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
- name: groupId
- name: artifactId
- name: version
- name: JAVA_HOME_11_X64
value: /usr/lib/jvm/jdk-11.0.8
pool:
name: Default_Linux
stages:
- stage: 'Compile'
displayName: 'Compile'
jobs:
- job: Compile
steps:
- script: echo Start Job Compile ...
displayName: 'Start Job Compile ...'
- task: Maven@3
name: 'mvnCleanVerify'
displayName: 'mvn clean package'
inputs:
mavenPomFile: $(mainPomFile)
mavenOptions: '$(MAVEN_OPTS)'
goals: 'clean package'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
mavenVersionOption: 'Default'
mavenAuthenticateFeed: false
effectivePomSkip: false
sonarQubeRunAnalysis: false
sqMavenPluginVersionChoice: 'latest'
options: 'package -Dmaven.test.skip -PGP-war'
- task: PublishPipelineArtifact@1
inputs:
targetPath: $(Build.SourcesDirectory)/sources/api/gestionepratiche-web/target/GP-war
artifact: gestionepratiche-web
- script: echo Job Compile :-D
displayName: 'END Job Compile :-D'
- stage: 'Build'
displayName: 'Build'
jobs:
- job: Build
steps:
- script: echo Start Job Build ...
displayName: 'Start Job Build ...'
- task: SonarQubePrepare_Private@1
inputs:
SonarQube: 'Sonarqube'
scannerMode: 'Other'
- task: ArtifactoryMaven@2
name: 'Publish2Artifactory'
displayName: 'Publish 2 Artifactory'
inputs:
mavenPomFile: $(mainPomFile)
goals: 'clean install -DskipTests -PGP-war'
artifactoryDeployService: 'ark-asset-jfrog-maven'
targetDeployReleaseRepo: 'ark-asset-release-local'
targetDeploySnapshotRepo: 'ark-asset-snapshot-local'
collectBuildInfo: true
- task: PowerShell@2
name: 'RetrieveMavenProjectVersion'
displayName: 'Retrieve maven project version main'
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.
[xml]$pomXml = Get-Content $(mainPomFile)
$groupId=$pomXml.project.groupId
Write-Host "##vso[task.setvariable variable=groupId]$groupId"
$artifactId=$pomXml.project.artifactId
Write-Host "##vso[task.setvariable variable=artifactId]$artifactId"
$version=$pomXml.project.version
Write-Host "##vso[task.setvariable variable=version]$version"
Write-Host $(groupId) $(artifactId) $(version) $(Build.ArtifactStagingDirectory)
- task: DownloadPipelineArtifact@2
inputs:
source: current
artifact: gestionepratiche-web
targetPath: $(Build.ArtifactStagingDirectory)/artifacts
- task: Docker@2
name: 'BuildDockerImageGpWeb'
displayName: 'Build Docker image gestionepratiche-web'
inputs:
containerRegistry: ark-asset-jfrog-docker
repository: ark-asset-local/$(groupId)/$(artifactId)
command: build
Dockerfile: $(mainDockerfile)
buildContext: $(Build.ArtifactStagingDirectory)
arguments: --build-arg JAR_FILE=./artifacts/app.war
tags: $(version)-$(Build.BuildNumber)
- task: ArtifactoryDocker@1
name: 'PushDockerImageDmsApi'
displayName: 'Push Docker image gestionepratiche'
inputs:
command: push
artifactoryService: ark-asset-jfrog-maven
targetRepo: ark-asset-local
imageName: almaviva.jfrog.io/ark-asset-local/$(groupId)/$(artifactId):$(version)-$(Build.BuildNumber)
- script: echo Job Build :-D
displayName: 'END Job Build :-D'
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIIFyDCCBLCgAwIBAgIQEkt5o+CefjGfMBHhHoLxUTANBgkqhkiG9w0BAQsFADCB
jzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQD
Ey5TZWN0aWdvIFJTQSBEb21haW4gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENB
MB4XDTIxMDIwOTAwMDAwMFoXDTIyMDIwOTIzNTk1OVowHjEcMBoGA1UEAwwTKi5j
b211bmUuc2FsZXJuby5pdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AMFDG8vzerPh4nJ5WFaedzY7rZmuqApjvPHX6ND2aFX9XkZ2UmW1MK+IBQrFGcRt
ZgZTUcdhL4jNVcftSLVdEkbQ4gu9LGHrMcmq+HIB1ZjxhYWEMw1omfSzsSrvrbSv
hat9fQtz5DRfwxC6uMSXHuvuqbfpl3xHmBUsm4FkZXxHtRjUxpmUtc8/ukDQQzDJ
q/bwoJcyUh8fjnAaPccZ94Tr54Y/7Floi3jKYh6LvwZYYTWZkG2tp8rIKzYvV9FY
AAoSLX7UMCb3fZ0LQbgP5Af7AdrBPOyLbeWfnhdTrhgOFzPbcgTeAaDf18CeCKlz
QOT3H9N3frl7abQ8acl1LFsCAwEAAaOCAo4wggKKMB8GA1UdIwQYMBaAFI2MXsRU
rYrhd+mb+ZsF4bgBjWHhMB0GA1UdDgQWBBQzzeTFQMmZ6L+RhzudbXYy0kZ6nDAO
BgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcD
AQYIKwYBBQUHAwIwSQYDVR0gBEIwQDA0BgsrBgEEAbIxAQICBzAlMCMGCCsGAQUF
BwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBAgEwgYQGCCsGAQUF
BwEBBHgwdjBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0
aWdvUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggrBgEF
BQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wMQYDVR0RBCowKIITKi5jb211
bmUuc2FsZXJuby5pdIIRY29tdW5lLnNhbGVybm8uaXQwggEEBgorBgEEAdZ5AgQC
BIH1BIHyAPAAdgBGpVXrdfqRIDC1oolp9PN9ESxBdL79SbiFq/L8cP5tRwAAAXeG
SPOeAAAEAwBHMEUCIDFpCvYZJub/3RLcsaNDRoPdm8astS8cqbnkAwmrFoLOAiEA
78Kz+xUd1rbuhTOc1b/M0AIbZ4rde/fqGAjehp6qzlkAdgDfpV6raIJPH2yt7rhf
Tj5a6s2iEqRqXo47EsAgRFwqcwAAAXeGSPPFAAAEAwBHMEUCIGlJTbpekVYvZ4i1
aS+gZf0uwRuJT+vuox0gidQmBDPmAiEAjiiru2UCAn9jLZqoKutcFHkJ4eI07Veq
WwF0BeF8QMYwDQYJKoZIhvcNAQELBQADggEBABNmGYXFDBMpOGxJcODY+L9nK1Sy
M2vORrO1yvcCH2LbVMUHrB5ttcyFXo1/R3eqO0elYzRJGjVoXGLR72/9L9S0BmJi
JgdMI7exgPiMvlOuE4tWRz6Fs+u/fF4LnjfuUAbiBtGEV+1h/O9k86XUJxz7jyqH
etQTOOqzRpgsli/0hI7NOU89KXKkaKn+3Inu096/NRfSWXXTVDMjFxvQnV9U5kFB
nJBTk7i19bsQxwA1uL7VVmulQxzs9vlBFCLQ6ejXFPVC9/ubY76GUUJUm2LFzHUW
tiJkDgutmxWaiR4KmStNIK3amrCR92up3MfgPjr4JyizRwHCwgK3wFXrky0=
-----END CERTIFICATE-----
version: "2.1"
services:
api:
build: ./docker/tomcat
ports:
- "8080:8080"
- "8000:8000"
volumes:
- ./sources/api/gestionepratiche-web/target/GP-war/gestionepratiche.war:/usr/local/tomcat/webapps/gestionepratiche.war
- ./docker/tomcat/lib/spring-boot-starter-tomcat-2.6.10.jar:/usr/local/tomcat/lib/spring-boot-starter-tomcat-2.6.10.jar
environment:
JAVA_OPTS: -Dspring.profiles.active=dev
JPDA_ADDRESS: 8000
JPDA_TRANSPORT: dt_socket
depends_on:
- mariadb
- camunda
- mongo
links:
- "mariadb"
- "mongo"
networks:
- back
mariadb:
image: mariadb:10.5.8-focal
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- mariadb-volume:/var/lib/mysql
networks:
- back
mongo:
image: mongo:4.0.22-xenial
ports:
- "27018:27017"
volumes:
- mongo-volume:/data/db
networks:
- back
camunda:
image: camunda/camunda-bpm-platform:tomcat-7.15.0-SNAPSHOT
volumes:
#- ./docker/camunda/webapps:/camunda/webapps
- ./docker/camunda/conf/bpm-platform.xml:/camunda/conf/bpm-platform.xml
- ./docker/camunda/conf/web.xml:/camunda/conf/web.xml
ports:
- "8090:8080"
links:
- "mariadb"
environment:
DB_DRIVER: com.mysql.jdbc.Driver
DB_URL: jdbc:mysql://mariadb:3306/process-engine
DB_USERNAME: root
DB_PASSWORD: root
networks:
- back
metabase:
image: metabase/metabase:v0.38.0-rc5
ports:
- "3000:3000"
links:
- "mariadb"
environment:
MB_DB_TYPE: mysql
MB_DB_DBNAME: metabase
MB_DB_PORT: 3306
MB_DB_USER: root
MB_DB_PASS: root
MB_DB_HOST: mariadb
networks:
- back
# client:
# entrypoint: /bin/sh -c "npm install && npm run start"
# build: ./docker/client
# working_dir: /usr/src/client
# volumes:
# - ./sources/client:/usr/src/client
# - ./sources/extensions/formio-extender/formio-extender-1.0.67.tgz:/usr/src/extensions/formio-extender/formio-extender-1.0.67.tgz
# ports:
# - "4300:4200"
camunda-graphql-extender:
build: ./docker/tomcat-graphql
volumes:
- ./docker/camunda-graphql-extender/webapps:/usr/local/tomcat/webapps
ports:
- "8091:8080"
- "8001:8001"
environment:
- "JPDA_ADDRESS=*:8001"
links:
- "mariadb"
networks:
- back
volumes:
mariadb-volume:
external: false
mongo-volume:
external: false
networks:
back:
driver: bridge
version: "2.1"
services:
api:
build: ./docker/tomcat
ports:
- "8080:8080"
- "8000:8000"
volumes:
- ./sources/api/gestionepratiche-web/target/GP-war/gestionepratiche.war:/usr/local/tomcat/webapps/gestionepratiche.war
- ./docker/tomcat/lib/spring-boot-starter-tomcat-2.6.10.jar:/usr/local/tomcat/lib/spring-boot-starter-tomcat-2.6.10.jar
environment:
JAVA_OPTS: -Dspring.profiles.active=dev
JPDA_ADDRESS: 8000
JPDA_TRANSPORT: dt_socket
depends_on:
- postgresdb
- mariadb
- camunda
- mongo
links:
- "mariadb"
- "postgresdb"
- "mongo"
networks:
- back
mariadb:
image: mariadb:10.5.8-focal
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- mariadb-volume:/var/lib/mysql
networks:
- back
mongo:
image: mongo:4.0.22-xenial
ports:
- "27018:27017"
volumes:
- mongo-volume:/data/db
networks:
- back
postgresdb:
image: postgres:alpine3.16
container_name: postgresdb
ports:
- "5432:5432"
volumes:
- postgresdb-volume:/var/lib/postgresql
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: admin
POSTGRES_DB: gestionepratiche
networks:
- back
camunda:
image: camunda/camunda-bpm-platform:tomcat-7.15.0-SNAPSHOT
volumes:
#- ./docker/camunda/webapps:/camunda/webapps
- ./docker/camunda/conf/bpm-platform.xml:/camunda/conf/bpm-platform.xml
- ./docker/camunda/conf/web.xml:/camunda/conf/web.xml
ports:
- "8090:8080"
links:
- "mariadb"
environment:
DB_DRIVER: com.mysql.jdbc.Driver
DB_URL: jdbc:mysql://mariadb:3306/process-engine
DB_USERNAME: root
DB_PASSWORD: root
networks:
- back
metabase:
image: metabase/metabase:v0.38.0-rc5
ports:
- "3000:3000"
links:
- "mariadb"
environment:
MB_DB_TYPE: mysql
MB_DB_DBNAME: metabase
MB_DB_PORT: 3306
MB_DB_USER: root
MB_DB_PASS: root
MB_DB_HOST: mariadb
networks:
- back
# client:
# entrypoint: /bin/sh -c "npm install && npm run start"
# build: ./docker/client
# working_dir: /usr/src/client
# volumes:
# - ./sources/client:/usr/src/client
# - ./sources/extensions/formio-extender/formio-extender-1.0.67.tgz:/usr/src/extensions/formio-extender/formio-extender-1.0.67.tgz
# ports:
# - "4300:4200"
camunda-graphql-extender:
build: ./docker/tomcat-graphql
volumes:
- ./docker/camunda-graphql-extender/webapps:/usr/local/tomcat/webapps
ports:
- "8091:8080"
- "8001:8001"
environment:
- "JPDA_ADDRESS=*:8001"
links:
- "mariadb"
networks:
- back
client:
image: nginx:1.22.0
container_name: client
volumes:
- ./sources/client/dist/client:/usr/share/nginx/html
ports:
- "80:80"
links:
- "api"
- "camunda-graphql-extender"
depends_on:
- api
- camunda-graphql-extender
networks:
- back
volumes:
mariadb-volume:
external: false
mongo-volume:
external: false
postgresdb-volume:
external: false
networks:
back:
driver: bridge
# This docker-compose file will spin up an ACS cluster on a local host or on a server and it requires a minimum of 12GB Memory to distribute among containers.
# Limit container memory and assign X percentage to JVM. There are couple of ways to allocate JVM Memory for ACS Containers
# For example: 'JAVA_OPTS: "$JAVA_OPTS -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"'
# See Oracle docs (https://docs.oracle.com/javase/9/gctuning/parallel-collector1.htm#JSGCT-GUID-CAB83393-3438-44ED-98F0-D15641B43C7D).
# If the container memory is not explicitly set then the flags above will set the max heap default to 1/4 of the container's memory, which may not be ideal.
# For performance tuning, assign the container memory and give a percentage of it to the JVM.
# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose
version: "2"
services:
alfresco:
image: alfresco/alfresco-content-repository-community:7.0.0-A20
mem_limit: 1500m
environment:
JAVA_TOOL_OPTIONS: "
-Dencryption.keystore.type=JCEKS
-Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
-Dencryption.keyAlgorithm=DESede
-Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
-Dmetadata-keystore.password=mp6yc0UD9e
-Dmetadata-keystore.aliases=metadata
-Dmetadata-keystore.metadata.password=oKIWzVdEdA
-Dmetadata-keystore.metadata.algorithm=DESede
"
JAVA_OPTS: "
-Ddb.driver=org.postgresql.Driver
-Ddb.username=alfresco
-Ddb.password=alfresco
-Ddb.url=jdbc:postgresql://postgres:5432/alfresco
-Dsolr.host=solr6
-Dsolr.port=8983
-Dsolr.secureComms=none
-Dsolr.base.url=/solr
-Dindex.subsystem.name=solr6
-Dshare.host=127.0.0.1
-Dshare.port=8080
-Dalfresco.host=localhost
-Dalfresco.port=8080
-Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos
-Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\"
-Ddeployment.method=DOCKER_COMPOSE
-DlocalTransform.core-aio.url=http://transform-core-aio:8090/
-Dcsrf.filter.enabled=false
-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
"
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:2.3.6
mem_limit: 1536m
environment:
JAVA_OPTS: " -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"
ports:
- 8090:8090
share:
image: alfresco/alfresco-share:7.0.0-M3
mem_limit: 1g
environment:
REPO_HOST: "alfresco"
REPO_PORT: "8080"
JAVA_OPTS: "
-XX:MinRAMPercentage=50
-XX:MaxRAMPercentage=80
-Dalfresco.host=localhost
-Dalfresco.port=8080
-Dalfresco.context=alfresco
-Dalfresco.protocol=http
"
postgres:
image: postgres:11.7
mem_limit: 512m
environment:
- POSTGRES_PASSWORD=alfresco
- POSTGRES_USER=alfresco
- POSTGRES_DB=alfresco
command: postgres -c max_connections=300 -c log_min_messages=LOG
ports:
- 5432:5432
solr6:
image: alfresco/alfresco-search-services:2.0.1
mem_limit: 2g
environment:
#Solr needs to know how to register itself with Alfresco
- SOLR_ALFRESCO_HOST=alfresco
- SOLR_ALFRESCO_PORT=8080
#Alfresco needs to know how to call solr
- SOLR_SOLR_HOST=solr6
- SOLR_SOLR_PORT=8983
#Create the default alfresco and archive cores
- SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive
#HTTP by default
- ALFRESCO_SECURE_COMMS=none
ports:
- 8083:8983 #Browser port
activemq:
image: alfresco/alfresco-activemq:5.15.8
mem_limit: 1g
ports:
- 8161:8161 # Web Console
- 5672:5672 # AMQP
- 61616:61616 # OpenWire
- 61613:61613 # STOMP
proxy:
image: alfresco/acs-community-ngnix:1.0.0
mem_limit: 128m
depends_on:
- alfresco
ports:
- 8080:8080
links:
- alfresco
- share
\ No newline at end of file
# WSO2 API Manager with Identity Server as Key Manager and API Manager Analytics Support
## Prerequisites
* Install [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git), [Docker](https://www.docker.com/get-docker) and [Docker Compose](https://docs.docker.com/compose/install/#install-compose)
in order to run the steps provided in following Quick start guide. <br><br>
* In order to use Docker images with WSO2 updates, you need an active WSO2 subscription.
Otherwise, you can proceed with Docker images available at [DockerHub](https://hub.docker.com/u/wso2/), which are created using GA releases.<br><br>
* If you wish to run the Docker Compose setup using Docker images built locally, build Docker images using Docker resources available from [here](../../dockerfiles/) and remove the `docker.wso2.com/` prefix from the `image` name in the `docker-compose.yml`. <br><br>
## Quick Start Guide
1. Login to WSO2's Private Docker Registry via Docker client. When prompted, enter the username and password of your WSO2 Subscription.
```
docker login docker.wso2.com
```
2. Clone WSO2 API Management Docker and Docker Compose resource Git repository.
```
git clone https://github.com/wso2/docker-apim
```
> If you are to try out an already released zip of this repo, please ignore this 2nd step.
3. Switch to `docker-compose/apim-is-as-km-with-analytics` folder.
```
cd docker-apim/docker-compose/apim-is-as-km-with-analytics
```
> If you intend to try out an already released zip of this repository, extract the zip file and directly browse to
`docker-apim-<released-version-here>/docker-compose/apim-is-as-km-with-analytics` folder.
> If you intend to try out an already released tag, after executing 2nd step, checkout the relevant tag,
i.e. for example: `git checkout tags/v3.2.0.1`, switch to `docker-compose/apim-is-as-km-with-analytics` folder and continue with below steps.
4. [Optional] Replace the existing IS extensions with the latest.
For this, refer to steps `3`, `4` and `5` of the [`Configure WSO2 IS` section](https://apim.docs.wso2.com/en/next/administer/key-managers/configure-wso2is-connector/#step-1-configure-wso2-is).
You may replace the JARs in `docker-compose/apim-is-as-km-with-analytics/dockerfiles/is-as-km/dropins` as defined in step 4.
You may replace the web app in `docker-compose/apim-is-as-km-with-analytics/dockerfiles/is-as-km/webapps` as defined in step 5.
5. Execute following Docker Compose command to start the deployment.
```
docker-compose up --build
```
6. Access the WSO2 API Manager web UIs using the below URLs via a web browser.
```
https://localhost:9443/publisher
https://localhost:9443/devportal
https://localhost:9443/admin
https://localhost:9443/carbon
```
Login to the web UIs using following credentials.
* Username: admin <br>
* Password: admin
Please note that API Gateway will be available on following ports.
```
https://localhost:8243
https://localhost:8280
```
Access the WSO2 API Manager Analytics web UIs using the below URL via a web browser.
```
https://localhost:9643/analytics-dashboard
```
Login to the web UIs using following credentials.
* Username: admin <br>
* Password: admin
[server]
hostname = "localhost"
node_ip = "127.0.0.1"
#offset=0
mode = "single" #single or ha
base_path = "${carbon.protocol}://${carbon.host}:${carbon.management.port}"
#discard_empty_caches = false
server_role = "default"
[super_admin]
username = "admin"
password = "admin"
create_admin_account = true
[user_store]
type = "database_unique_id"
[database.apim_db]
type = "mysql"
url = "jdbc:mysql://mysql:3306/WSO2AM_DB?autoReconnect=true&amp;useSSL=false"
username = "wso2carbon"
password = "wso2carbon"
driver = "com.mysql.cj.jdbc.Driver"
[database.shared_db]
type = "mysql"
url = "jdbc:mysql://mysql:3306/WSO2AM_SHARED_DB?autoReconnect=true&amp;useSSL=false"
username = "wso2carbon"
password = "wso2carbon"
driver = "com.mysql.cj.jdbc.Driver"
[keystore.tls]
file_name = "wso2carbon.jks"
type = "JKS"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"
#[keystore.primary]
#file_name = "wso2carbon.jks"
#type = "JKS"
#password = "wso2carbon"
#alias = "wso2carbon"
#key_password = "wso2carbon"
#[keystore.internal]
#file_name = "wso2carbon.jks"
#type = "JKS"
#password = "wso2carbon"
#alias = "wso2carbon"
#key_password = "wso2carbon"
[[apim.gateway.environment]]
name = "Production and Sandbox"
type = "hybrid"
display_in_api_console = true
description = "This is a hybrid gateway that handles both production and sandbox token traffic."
show_as_token_endpoint_url = true
service_url = "https://localhost:${mgt.transport.https.port}/services/"
username= "${admin.username}"
password= "${admin.password}"
ws_endpoint = "ws://localhost:9099"
wss_endpoint = "wss://localhost:8099"
http_endpoint = "http://localhost:${http.nio.port}"
https_endpoint = "https://localhost:${https.nio.port}"
#[apim.cache.gateway_token]
#enable = true
#expiry_time = "900s"
#[apim.cache.resource]
#enable = true
#expiry_time = "900s"
#[apim.cache.km_token]
#enable = false
#expiry_time = "15m"
#[apim.cache.recent_apis]
#enable = false
#[apim.cache.scopes]
#enable = true
#[apim.cache.publisher_roles]
#enable = true
#[apim.cache.jwt_claim]
#enable = true
#expiry_time = "15m"
#[apim.cache.tags]
#expiry_time = "2m"
[apim.analytics]
enable = false
store_api_url = "https://am-analytics-worker:7444"
#username = "$ref{super_admin.username}"
#password = "$ref{super_admin.password}"
#event_publisher_type = "default"
#event_publisher_impl = "org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher"
#publish_response_size = true
[[apim.analytics.url_group]]
analytics_url =["tcp://am-analytics-worker:7612"]
analytics_auth_url =["ssl://am-analytics-worker:7712"]
#type = "loadbalance"
#[[apim.analytics.url_group]]
#analytics_url =["tcp://analytics1:7612","tcp://analytics2:7612"]
#analytics_auth_url =["ssl://analytics1:7712","ssl://analytics2:7712"]
#type = "failover"
[apim.key_manager]
service_url = "https://is-as-km:9444/services/"
type = "WSO2-IS"
#username = "$ref{super_admin.username}"
#password = "$ref{super_admin.password}"
#pool.init_idle_capacity = 50
#pool.max_idle = 100
#key_validation_handler_type = "default"
#key_validation_handler_type = "custom"
#key_validation_handler_impl = "org.wso2.carbon.apimgt.keymgt.handlers.DefaultKeyValidationHandler"
#[apim.idp]
#server_url = "https://localhost:${mgt.transport.https.port}"
#authorize_endpoint = "https://localhost:${mgt.transport.https.port}/oauth2/authorize"
#oidc_logout_endpoint = "https://localhost:${mgt.transport.https.port}/oidc/logout"
#oidc_check_session_endpoint = "https://localhost:${mgt.transport.https.port}/oidc/checksession"
[apim.jwt]
enable = true
encoding = "base64" # base64,base64url
generator_impl = "org.wso2.carbon.apimgt.keymgt.token.JWTGenerator"
claim_dialect = "http://wso2.org/claims"
convert_dialect = false
header = "X-JWT-Assertion"
signing_algorithm = "SHA256withRSA"
enable_user_claims = true
claims_extractor_impl = "org.wso2.carbon.apimgt.impl.token.ExtendedDefaultClaimsRetriever"
#[apim.oauth_config]
#enable_outbound_auth_header = false
#auth_header = "Authorization"
#revoke_endpoint = "https://localhost:${https.nio.port}/revoke"
#enable_token_encryption = false
#enable_token_hashing = false
#[apim.devportal]
#url = "https://localhost:${mgt.transport.https.port}/devportal"
#enable_application_sharing = false
#if application_sharing_type, application_sharing_impl both defined priority goes to application_sharing_impl
#application_sharing_type = "default" #changed type, saml, default #todo: check the new config for rest api
#application_sharing_impl = "org.wso2.carbon.apimgt.impl.SAMLGroupIDExtractorImpl"
#display_multiple_versions = false
#display_deprecated_apis = false
#enable_comments = true
#enable_ratings = true
#enable_forum = true
#enable_anonymous_mode=true
[apim.cors]
allow_origins = "*"
allow_methods = ["GET","PUT","POST","DELETE","PATCH","OPTIONS"]
allow_headers = ["authorization","Access-Control-Allow-Origin","Content-Type","SOAPAction","apikey", "testKey"]
allow_credentials = false
#[apim.throttling]
#enable_data_publishing = true
#enable_policy_deploy = true
#enable_blacklist_condition = true
#enable_persistence = true
#throttle_decision_endpoints = ["tcp://localhost:5672","tcp://localhost:5672"]
#[apim.throttling.blacklist_condition]
#start_delay = "5m"
#period = "1h"
#[apim.throttling.jms]
#start_delay = "5m"
#[apim.throttling.event_sync]
#hostName = "0.0.0.0"
#port = 11224
#[apim.throttling.event_management]
#hostName = "0.0.0.0"
#port = 10005
#[[apim.throttling.url_group]]
#traffic_manager_urls = ["tcp://localhost:9611","tcp://localhost:9611"]
#traffic_manager_auth_urls = ["ssl://localhost:9711","ssl://localhost:9711"]
#type = "loadbalance"
#[[apim.throttling.url_group]]
#traffic_manager_urls = ["tcp://localhost:9611","tcp://localhost:9611"]
#traffic_manager_auth_urls = ["ssl://localhost:9711","ssl://localhost:9711"]
#type = "failover"
#[apim.workflow]
#enable = false
#service_url = "https://localhost:9445/bpmn"
#username = "$ref{super_admin.username}"
#password = "$ref{super_admin.password}"
#callback_endpoint = "https://localhost:${mgt.transport.https.port}/api/am/admin/v0.17/workflows/update-workflow-status"
#token_endpoint = "https://localhost:${https.nio.port}/token"
#client_registration_endpoint = "https://localhost:${mgt.transport.https.port}/client-registration/v0.17/register"
#client_registration_username = "$ref{super_admin.username}"
#client_registration_password = "$ref{super_admin.password}"
#data bridge config
#[transport.receiver]
#type = "binary"
#worker_threads = 10
#session_timeout = "30m"
#keystore.file_name = "$ref{keystore.tls.file_name}"
#keystore.password = "$ref{keystore.tls.password}"
#tcp_port = 9611
#ssl_port = 9711
#ssl_receiver_thread_pool_size = 100
#tcp_receiver_thread_pool_size = 100
#ssl_enabled_protocols = ["TLSv1","TLSv1.1","TLSv1.2"]
#ciphers = ["SSL_RSA_WITH_RC4_128_MD5","SSL_RSA_WITH_RC4_128_SHA"]
#[apim.notification]
#from_address = "APIM.com"
#username = "APIM"
#password = "APIM+123"
#hostname = "localhost"
#port = 3025
#enable_start_tls = false
#enable_authentication = true
#[apim.token.revocation]
#notifier_impl = "org.wso2.carbon.apimgt.keymgt.events.TokenRevocationNotifierImpl"
#enable_realtime_notifier = true
#realtime_notifier.ttl = 5000
#enable_persistent_notifier = true
#persistent_notifier.hostname = "https://localhost:2379/v2/keys/jti/"
#persistent_notifier.ttl = 5000
#persistent_notifier.username = "root"
#persistent_notifier.password = "root"
[[event_handler]]
name="userPostSelfRegistration"
subscriptions=["POST_ADD_USER"]
[service_provider]
sp_name_regex = "^[\\sa-zA-Z0-9._-]*$"
[database.local]
url = "jdbc:h2:./repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE"
[[event_listener]]
id = "token_revocation"
type = "org.wso2.carbon.identity.core.handler.AbstractIdentityHandler"
name = "org.wso2.is.notification.ApimOauthEventInterceptor"
order = 1
[event_listener.properties]
notification_endpoint = "https://localhost:${mgt.transport.https.port}/internal/data/v1/notify"
username = "${admin.username}"
password = "${admin.password}"
'header.X-WSO2-KEY-MANAGER' = "default"
[config_data]
path = "/_system/apim/config"
[transport.passthru_https.sender.parameters]
HostnameVerifier="AllowAll"
[server]
hostname = "localhost"
node_ip = "127.0.0.1"
base_path = "https://$ref{server.hostname}:${carbon.management.port}"
offset=1
[super_admin]
username = "admin"
password = "admin"
create_admin_account = true
[user_store]
type = "read_write_ldap_unique_id"
connection_url = "ldap://localhost:${Ports.EmbeddedLDAP.LDAPServerPort}"
connection_name = "uid=admin,ou=system"
connection_password = "admin"
base_dn = "dc=wso2,dc=org" #refers the base dn on which the user and group search bases will be generated
[database.identity_db]
type = "h2"
url = "jdbc:h2:./repository/database/WSO2IDENTITY_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000"
username = "wso2carbon"
password = "wso2carbon"
[database.shared_db]
type = "mysql"
url = "jdbc:mysql://mysql:3306/WSO2AM_SHARED_DB?autoReconnect=true&amp;useSSL=false"
username = "wso2carbon"
password = "wso2carbon"
driver = "com.mysql.cj.jdbc.Driver"
[keystore.primary]
file_name = "wso2carbon.jks"
password = "wso2carbon"
# custom identity server as key manager configurations
[[event_listener]]
id = "token_revocation"
type = "org.wso2.carbon.identity.core.handler.AbstractIdentityHandler"
name = "org.wso2.is.notification.ApimOauthEventInterceptor"
order = 1
[event_listener.properties]
notification_endpoint = "https://localhost:9443/internal/data/v1/notify"
username = "${admin.username}"
password = "${admin.password}"
'header.X-WSO2-KEY-MANAGER' = "WSO2IS"
[[resource.access_control]]
context = "(.)/keymanager-operations/user-info/claims(.)"
secure = true
http_method = "GET"
permissions = "/permission/admin/manage/identity/usermgt/list"
scopes = "internal_user_mgt_list"
[[resource.access_control]]
context = "(.*)/keymanager-operations/user-info/claims/generate"
secure = true
http_method = "POST"
permissions = "/permission/admin/manage/identity/usermgt/list"
scopes = "internal_user_mgt_list"
[[resource.access_control]]
context = "(.*)/keymanager-operations/dcr/register"
secure = true
http_method = "POST"
permissions = "/permission/admin/manage/identity/applicationmgt/create"
scopes = "internal_application_mgt_create"
[[resource.access_control]]
context = "(.*)/keymanager-operations/dcr/register(.*)"
secure = true
http_method = "GET"
permissions = "/permission/admin/manage/identity/applicationmgt/view"
scopes = "internal_application_mgt_view"
[[resource.access_control]]
context = "(.*)/keymanager-operations/dcr/register(.*)"
secure = true
http_method = "PUT"
permissions = "/permission/admin/manage/identity/applicationmgt/update"
scopes = "internal_application_mgt_update"
[[resource.access_control]]
context = "(.*)/keymanager-operations/dcr/register(.*)"
secure = true
http_method = "DELETE"
permissions = "/permission/admin/manage/identity/applicationmgt/delete"
scopes = "internal_application_mgt_delete"
[tenant_context.rewrite]
custom_webapps = ["/keymanager-operations/"]
[config_data]
path = "/_system/is_as_km/config"
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
max_connections=1000
DROP DATABASE IF EXISTS WSO2AM_STATS_DB;
DROP DATABASE IF EXISTS WSO2AM_BUSINESS_RULES_DB;
DROP DATABASE IF EXISTS WSO2AM_DASHBOARD_DB;
DROP DATABASE IF EXISTS WSO2AM_PERMISSIONS_DB;
CREATE DATABASE WSO2AM_STATS_DB;
CREATE DATABASE WSO2AM_BUSINESS_RULES_DB;
CREATE DATABASE WSO2AM_DASHBOARD_DB;
CREATE DATABASE WSO2AM_PERMISSIONS_DB;
GRANT ALL ON WSO2AM_STATS_DB.* TO 'wso2carbon'@'%' IDENTIFIED BY 'wso2carbon';
GRANT ALL ON WSO2AM_BUSINESS_RULES_DB.* TO 'wso2carbon'@'%' IDENTIFIED BY 'wso2carbon';
GRANT ALL ON WSO2AM_DASHBOARD_DB.* TO 'wso2carbon'@'%' IDENTIFIED BY 'wso2carbon';
GRANT ALL ON WSO2AM_PERMISSIONS_DB.* TO 'wso2carbon'@'%' IDENTIFIED BY 'wso2carbon';
# Copyright (c) 2019, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: '2.4'
services:
mysql:
image: mysql:5.7.31
ports:
- 3306
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./conf/mysql/scripts:/docker-entrypoint-initdb.d
- ./conf/mysql/conf/my.cnf:/etc/mysql/my.cnf
ulimits:
nofile:
soft: 20000
hard: 40000
command: [--ssl=0]
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-proot"]
interval: 30s
timeout: 60s
retries: 5
start_period: 80s
am-analytics-worker:
build: ./dockerfiles/apim-analytics-worker
ports:
- "9091"
- "9444"
healthcheck:
test: ["CMD", "nc", "-z","localhost", "9444"]
interval: 10s
start_period: 20s
retries: 5
depends_on:
mysql:
condition: service_healthy
volumes:
- ./conf/apim-analytics-worker:/home/wso2carbon/wso2-config-volume
is-as-km:
build: ./dockerfiles/is-as-km
healthcheck:
test: ["CMD", "nc", "-z","localhost", "9444"]
interval: 10s
start_period: 180s
retries: 20
depends_on:
mysql:
condition: service_healthy
volumes:
- ./conf/is-as-km:/home/wso2carbon/wso2-config-volume
ports:
- "9444:9444"
api-manager:
build: ./dockerfiles/apim
healthcheck:
test: ["CMD", "nc", "-z","localhost", "9443"]
interval: 10s
start_period: 180s
retries: 20
depends_on:
mysql:
condition: service_healthy
am-analytics-worker:
condition: service_healthy
is-as-km:
condition: service_healthy
volumes:
- ./conf/apim:/home/wso2carbon/wso2-config-volume
ports:
- "9443:9443"
- "8280:8280"
- "8243:8243"
am-analytics-dashboard:
build: ./dockerfiles/apim-analytics-dashboard
ports:
- "9643:9643"
healthcheck:
test: ["CMD", "nc", "-z","localhost", "9643"]
interval: 10s
retries: 5
start_period: 20s
depends_on:
mysql:
condition: service_healthy
api-manager:
condition: service_healthy
volumes:
- ./conf/apim-analytics-dashboard:/home/wso2carbon/wso2-config-volume
# ------------------------------------------------------------------------
#
# Copyright 2020 WSO2, Inc. (http://wso2.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License
#
# ------------------------------------------------------------------------
# set base Docker image to WSO2 API Manager Analytics Dashboard Docker image with latest WSO2 Updates
FROM wso2/wso2am-analytics-dashboard:3.2.0
LABEL maintainer="WSO2 Docker Maintainers <dev@wso2.org>"
# build arguments for external artifacts
ARG MYSQL_CONNECTOR_VERSION=8.0.17
# add MySQL JDBC connector to server home as a third party library
ADD --chown=wso2carbon:wso2 https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_CONNECTOR_VERSION}/mysql-connector-java-${MYSQL_CONNECTOR_VERSION}.jar ${WSO2_SERVER_HOME}/lib/
# ------------------------------------------------------------------------
#
# Copyright 2020 WSO2, Inc. (http://wso2.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License
#
# ------------------------------------------------------------------------
# set base Docker image to WSO2 API Manager Analytics Worker Docker image with latest WSO2 Updates
FROM wso2/wso2am-analytics-worker:3.2.0
LABEL maintainer="WSO2 Docker Maintainers <dev@wso2.org>"
# build arguments for external artifacts
ARG MYSQL_CONNECTOR_VERSION=8.0.17
# add MySQL JDBC connector to server home as a third party library
ADD --chown=wso2carbon:wso2 https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_CONNECTOR_VERSION}/mysql-connector-java-${MYSQL_CONNECTOR_VERSION}.jar ${WSO2_SERVER_HOME}/lib/
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
<context-root>/camunda-welcome</context-root>
<parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.