Several fixes
All checks were successful
Build, Push and Deploy / build-and-deploy (push) Successful in 55s

- added organizations
- added industries
- added logo in 2 colors for light and dark theme
- improved authorization to allow multi tenancy
- added Bruno configs
This commit is contained in:
Murat Özkorkmaz
2025-11-13 19:56:12 +01:00
parent 62c13ff0b1
commit fb416dff55
38 changed files with 948 additions and 53 deletions

View File

@@ -1,48 +0,0 @@
meta {
name: Auth App
type: http
seq: 1
}
post {
url: {{KEYCLOAK_BASE_URL}}/realms/{{KEYCLOAK_REALM}}/protocol/openid-connect/token
body: formUrlEncoded
auth: inherit
}
headers {
Content-Type: application/x-www-form-urlencoded
}
body:form-urlencoded {
grant_type: password
client_id: {{KEYCLOAK_CLIENT_ID}}
username: {{ADMIN_USERNAME}}
password: {{ADMIN_PASSWORD}}
}
script:post-response {
// Parse die JSON-Antwort
const jsonResponse = res.body;
if (jsonResponse.access_token) {
// Schreibe den access_token in eine Umgebungsvariable
// oder in eine collection-Variable
// Option 1: In eine Umgebungsvariable schreiben
// (z.B. für eine bestimmte Umgebung wie "Development")
bru.setEnvVar("BEARER_TOKEN", jsonResponse.access_token);
// Option 2: In eine Collection-Variable schreiben
// (Diese Variable ist global für alle Anfragen in deiner Collection)
// bru.setVar("bearerToken", "Bearer " + jsonResponse.access_token);
} else {
// optional: Error Handling, falls der Token nicht in der Antwort ist
console.log("Error: access_token not found in the response.");
}
}
settings {
encodeUrl: false
}

View File

@@ -33,6 +33,7 @@ script:post-response {
// (z.B. für eine bestimmte Umgebung wie "Development")
bru.setEnvVar("BEARER_TOKEN", jsonResponse.access_token);
console.log("Updated access token.");
// Option 2: In eine Collection-Variable schreiben
// (Diese Variable ist global für alle Anfragen in deiner Collection)
// bru.setVar("bearerToken", "Bearer " + jsonResponse.access_token);

View File

@@ -1,7 +1,7 @@
meta {
name: Upload Organizations
type: http
seq: 3
seq: 2
}
post {

View File

@@ -1,7 +1,7 @@
meta {
name: Upload Persons
type: http
seq: 2
seq: 1
}
post {

View File

@@ -0,0 +1,31 @@
meta {
name: Create new
type: http
seq: 3
}
post {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/industries
body: json
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
body:json {
{
"name": "Bungalow",
"street": "Hebbelstraße",
"houseNumber": "30",
"zipCode": "55127",
"city": "Mainz",
"country": "DE",
"notes": "Lorem ipsum"
}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,31 @@
meta {
name: Delete one by ID
type: http
seq: 4
}
delete {
url: API_BASE_URL}}/api/{{API_VERSION}}/industries/e64d5e53-cd45-45fb-9237-46078077bf22
body: json
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
body:json {
{
"name": "Mustername 1",
"street": "Musterstraße",
"houseNumber": "1",
"zipCode": "55123",
"city": "Musterstadt",
"country": "de",
"notes": "Lorem ipsum"
}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,19 @@
meta {
name: Get all
type: http
seq: 1
}
get {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/industries
body: none
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,19 @@
meta {
name: Get one by ID
type: http
seq: 2
}
get {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/industries/da002464-33e9-4bfd-9ae2-836b26955502
body: none
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,39 @@
meta {
name: Upload files
type: http
seq: 5
}
post {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/industries/f4eb0c54-7c8f-4e60-b71f-1d08b8b6e2d4/upload
body: multipartForm
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
body:json {
{
"name": "Bungalow",
"street": "Hebbelstraße",
"houseNumber": "30",
"zipCode": "55127",
"city": "Mainz",
"country": "DE",
"notes": "Lorem ipsum"
}
}
body:multipart-form {
attachments: @file(/Users/murat/Pictures/IMG_0229.jpeg|/Users/murat/Pictures/schnürsenkel technik.gif)
}
body:file {
file: @file(/Users/murat/Pictures/IMG_0229.jpeg) @contentType(image/jpeg)
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,8 @@
meta {
name: Industries
seq: 9
}
auth {
mode: inherit
}

View File

@@ -0,0 +1,31 @@
meta {
name: Create new
type: http
seq: 3
}
post {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/organizations
body: json
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
body:json {
{
"name": "Bungalow",
"street": "Hebbelstraße",
"houseNumber": "30",
"zipCode": "55127",
"city": "Mainz",
"country": "DE",
"notes": "Lorem ipsum"
}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,31 @@
meta {
name: Delete one by ID
type: http
seq: 4
}
delete {
url: API_BASE_URL}}/api/{{API_VERSION}}/organizations/e64d5e53-cd45-45fb-9237-46078077bf22
body: json
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
body:json {
{
"name": "Mustername 1",
"street": "Musterstraße",
"houseNumber": "1",
"zipCode": "55123",
"city": "Musterstadt",
"country": "de",
"notes": "Lorem ipsum"
}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,19 @@
meta {
name: Get all
type: http
seq: 1
}
get {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/organizations
body: none
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,19 @@
meta {
name: Get one by ID
type: http
seq: 2
}
get {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/organizations/5dba067e-d7fd-4d79-a08a-ec379834938a
body: none
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,39 @@
meta {
name: Upload files
type: http
seq: 5
}
post {
url: {{API_BASE_URL}}/api/{{API_VERSION}}/organizations/f4eb0c54-7c8f-4e60-b71f-1d08b8b6e2d4/upload
body: multipartForm
auth: bearer
}
auth:bearer {
token: {{BEARER_TOKEN}}
}
body:json {
{
"name": "Bungalow",
"street": "Hebbelstraße",
"houseNumber": "30",
"zipCode": "55127",
"city": "Mainz",
"country": "DE",
"notes": "Lorem ipsum"
}
}
body:multipart-form {
attachments: @file(/Users/murat/Pictures/IMG_0229.jpeg|/Users/murat/Pictures/schnürsenkel technik.gif)
}
body:file {
file: @file(/Users/murat/Pictures/IMG_0229.jpeg) @contentType(image/jpeg)
}
settings {
encodeUrl: true
}

View File

@@ -0,0 +1,8 @@
meta {
name: Organizations
seq: 8
}
auth {
mode: inherit
}

View File

@@ -9,8 +9,8 @@ vars {
KEYCLOAK_CLIENT_ID: skamp-app
KEYCLOAK_REALM: skamp
KEYCLOAK_BRUNO_CLIENT_ID: skamp-bruno
KEYCLOAK_BRUNO_CLIENT_SECRET: sNQpCVyVckGo5AZw7FqeW0POtgWuXzJt
}
vars:secret [
BEARER_TOKEN
BEARER_TOKEN,
KEYCLOAK_BRUNO_CLIENT_SECRET
]