Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,7 @@ Thumbs.db
*.tmp
*.temp
.cache/

# Local H2 database files used by docker-compose v8.9
docker-compose/versions/camunda-8.9/camunda-data/*
!docker-compose/versions/camunda-8.9/camunda-data/.gitkeep
2 changes: 1 addition & 1 deletion docker-compose/versions/camunda-8.9/.env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Image versions ##
# renovate: datasource=docker depName=camunda/camunda
CAMUNDA_VERSION=8.9.0-alpha1
CAMUNDA_VERSION=8.9.0-alpha3
# renovate: datasource=docker depName=camunda/connectors-bundle
CAMUNDA_CONNECTORS_VERSION=8.9.0-alpha2
# renovate: datasource=docker depName=camunda/identity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,16 @@ zeebe:
size: 1
index:
prefix: "zeebe-record"
CamundaExporter:
className: "io.camunda.exporter.CamundaExporter"
args:
connect:
type: elasticsearch
url: "http://elasticsearch:9200"
createSchema: true

camunda:
database:
type: rdbms
backup:
webapps:
enabled: false
persistent:
sessions:
enabled: true
enabled: false

rest:
query:
Expand Down Expand Up @@ -105,16 +103,20 @@ camunda:
#
data:
secondary-storage:
type: elasticsearch
elasticsearch:
url: "http://elasticsearch:9200"
number-of-replicas: 0
type: rdbms
rdbms:
url: jdbc:h2:file:./camunda-data/h2db
username: sa
password:
flushInterval: PT0.5S
queueSize: 1000

#
# Camunda Operate Configuration.
#
operate:
persistentSessionsEnabled: true
database: rdbms
persistentSessionsEnabled: false
identity:
redirectRootUrl: "http://localhost:8080/operate"

Expand Down Expand Up @@ -150,6 +152,7 @@ camunda:
# Camunda Tasklist Configuration.
#
tasklist:
database: rdbms
identity:
redirectRootUrl: "http://localhost:8080/tasklist"

Expand Down Expand Up @@ -186,4 +189,3 @@ camunda:
# Gateway address
gatewayAddress: zeebe:26500
restAddress: "http://zeebe:8080"

Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ services:
start_period: 30s
volumes:
- orchestration:/usr/local/zeebe/data
- ./camunda-data:/usr/local/camunda/camunda-data
- "./.orchestration/application.yaml:/usr/local/camunda/config/application.yaml"
networks:
- camunda-platform
Expand Down
27 changes: 23 additions & 4 deletions docker-compose/versions/camunda-8.9/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ services:
- "8080:8080"
environment:
- JAVA_TOOL_OPTIONS="-XX:+PrintFlagsFinal"
- CAMUNDA_DATA_SECONDARY_STORAGE_TYPE=rdbms
- CAMUNDA_DATA_SECONDARY_STORAGE_RDBMS_URL=jdbc:h2:file:./camunda-data/h2db
- CAMUNDA_DATA_SECONDARY_STORAGE_RDBMS_USERNAME=sa
- CAMUNDA_DATA_SECONDARY_STORAGE_RDBMS_PASSWORD=
- CAMUNDA_DATA_SECONDARY_STORAGE_RDBMS_FLUSHINTERVAL=PT0.5S
- CAMUNDA_DATA_SECONDARY_STORAGE_RDBMS_QUEUESIZE=1000
mem_limit: 1g
restart: always
healthcheck:
Expand All @@ -27,6 +33,7 @@ services:
start_period: 30s
volumes:
- zeebe:/usr/local/zeebe/data
- ./camunda-data:/usr/local/camunda/camunda-data
configs:
- source: orchestration-config
target: /usr/local/camunda/config/application.yaml
Expand Down Expand Up @@ -109,6 +116,11 @@ configs:
content: |
management.endpoints.configprops.show-values: always
camunda:
database:
type: rdbms
backup:
webapps:
enabled: false
system:
cpu-thread-count: "3"
io-thread-count: "3"
Expand All @@ -129,7 +141,14 @@ configs:
database.index.numberOfReplicas: 0 # Single node elasticsearch so we disable replication
data:
secondary-storage:
type: elasticsearch
elasticsearch:
cluster-name: elasticsearch
url: "http://elasticsearch:9200"
type: rdbms
rdbms:
url: jdbc:h2:file:./camunda-data/h2db
username: sa
password:
flushInterval: PT0.5S
queueSize: 1000
operate:
database: rdbms
tasklist:
database: rdbms
23 changes: 12 additions & 11 deletions docker-compose/versions/camunda-8.9/tests/operate_login.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,22 @@ import { test, expect } from '@playwright/test';
test('Operate login and dashboard access', async ({ page }) => {
test.setTimeout(120000);

// Navigate to Operate
// Navigate to Operate (OIDC flow will redirect through Keycloak)
await page.goto('http://localhost:8080/operate');

// Wait for page to load and verify login form is present
await page.waitForLoadState('networkidle');
await expect(page.getByLabel('Username or email')).toBeVisible();
await expect(page.getByLabel('Password')).toBeVisible();
// Identity login page shows either "Username" or "Username or email"
const usernameField = page.locator('input[name="username"], input[name="email"], input[id="username"], input[label="Username or email"]');
await usernameField.first().waitFor({ state: 'visible' });
const passwordField = page.locator('input[type="password"]');
await passwordField.first().waitFor({ state: 'visible' });

// Perform login
await page.getByLabel('Username or email').fill('demo');
await page.getByLabel('Password').fill('demo');
await page.getByRole('button', { name: 'Log in' }).click();
await usernameField.first().fill('demo');
await passwordField.first().fill('demo');
await page.getByRole('button', { name: /sign in|log in/i }).click();

// Wait for navigation after successful login
await page.waitForLoadState('networkidle');
// Wait for navigation after successful login back to Operate
await page.waitForLoadState('load');
await page.waitForURL(/http:\/\/localhost:8080\/operate(?!.*login).*$/);

// Verify successful login by checking URL change and absence of login form
await expect(page).toHaveURL(/.*operate(?!.*login).*$/);
Expand Down