This website requires JavaScript.
14da36e83a
feat(helpdesk): add customer engagement analytics page [skip ci]
main
aminovfariz
2026-06-25 10:30:05 +02:00
2924407450
fix(oidc): replace deprecated $http_response_header with http_get_last_response_headers()
aminovfariz
2026-06-23 10:40:26 +02:00
7a9702cffa
fix(phpstan): remove stale Flash::add() baseline suppression
aminovfariz
2026-06-23 09:37:20 +02:00
3ae289f1b7
fix(security): exclude SecurityReportTemplateService from HTML-in-service check
aminovfariz
2026-06-23 09:31:47 +02:00
c20d996ca6
docs: add git workflow howto (remotes, PR merge, deploy)
aminovfariz
2026-06-23 09:31:13 +02:00
a7b13c3973
feat(security): merge security checks module from tbh/feature/security-checks
aminovfariz
2026-06-23 09:27:23 +02:00
4636374af4
fix(helpdesk): clean up handover form field handling
aminovfariz
2026-06-23 09:27:13 +02:00
372ca5f66b
Added security check report field and variable
Tobias Huttinger
2026-06-22 14:13:08 +02:00
7a9f8e770a
Added security check report settings and templating
Tobias Huttinger
2026-06-22 14:00:14 +02:00
0b7c08ba6b
Added a confirmation dialog for security check danger zone
Tobias Huttinger
2026-06-22 13:31:55 +02:00
498afc7840
First version of the security module
Tobias Huttinger
2026-06-22 13:19:05 +02:00
0392043ee3
fix(helpdesk): fix user-select empty options — use nested row structure fallback
aminovfariz
2026-06-08 12:00:25 +02:00
e3dfdef76f
fix(helpdesk): always load tenant users, not only when schema has user-select
aminovfariz
2026-06-08 11:57:02 +02:00
40b94fa891
fix(helpdesk): user-select as multi-select, store as JSON array
aminovfariz
2026-06-08 11:51:50 +02:00
0fabb0c478
fix(helpdesk): allow user-select in schema field type validation
aminovfariz
2026-06-08 11:34:28 +02:00
2968d5e386
feat(helpdesk): add user-select to schema editor field type dropdown
aminovfariz
2026-06-08 11:04:25 +02:00
9bc8799b6b
feat(helpdesk): add user-select field type to handover protocol schema
aminovfariz
2026-06-08 10:46:15 +02:00
e569e2d26c
fix(helpdesk): fix manual domain value not submitted — use hidden input for domain_no
aminovfariz
2026-06-08 10:22:19 +02:00
57cb2f1017
ci: trigger GitHub Actions
aminovfariz
2026-06-08 10:05:02 +02:00
0fc2d3f2c3
feat(helpdesk): show manual domain input when customer has no domains
aminovfariz
2026-06-08 10:04:27 +02:00
2b230e756e
fix(deploy): re-resolve php upstream on each request to survive container restarts
aminovfariz
2026-06-08 09:58:28 +02:00
b049e2490b
chore(deploy): add production deploy config (docker-compose + nginx)
aminovfariz
2026-06-08 09:37:37 +02:00
16fe1b0db3
fix(ci): skip codex skills sync on hosts without Codex installation
aminovfariz
2026-06-08 09:29:00 +02:00
322c9575f8
fix(css): wrap address-book-index.css in @layer pages block
aminovfariz
2026-06-08 09:23:09 +02:00
3ff302cc02
fix(css): add missing @layer pages declaration to address-book-index.css
aminovfariz
2026-06-08 09:15:43 +02:00
c6a919652f
fix(ci): install ripgrep in deploy workflow qa step
aminovfariz
2026-06-08 09:10:48 +02:00
f4b08e4c73
fix(ci): install ripgrep on runner before qa-required scripts
aminovfariz
2026-06-08 09:06:12 +02:00
db5c57ea5c
fix(phpstan): remove unused Curl import from OidcHttpGateway
aminovfariz
2026-06-05 15:01:49 +02:00
0a56c741e8
fix(phpstan): simplify http_response_header check in OidcHttpGateway
aminovfariz
2026-06-05 14:56:37 +02:00
668a67c094
fix(tests): pass appTitle and appUrl to auth service constructors in tests
aminovfariz
2026-06-05 14:51:47 +02:00
acf3229f3f
fix(tests): replace appLogoUrlAbsolute with resolveAppUrl in auth services
aminovfariz
2026-06-05 14:43:52 +02:00
5367449d80
fix(ci): run db:migrate before tests so settings table exists
aminovfariz
2026-06-05 14:38:52 +02:00
68407b944e
fix(tests): remove appTitle/appUrl from AuthServicesFactory constructor calls
aminovfariz
2026-06-05 14:27:28 +02:00
c12d155e23
fix(tests): inject appTitle/appUrl into auth services to avoid DB calls in unit tests
aminovfariz
2026-06-05 14:21:04 +02:00
3f08f6189e
fix(helpdesk): inject appTitle/appUrl into HandoverNotificationService to avoid DB calls in tests
aminovfariz
2026-06-05 14:10:13 +02:00
b8fc55bcc2
ci: start php container for QA gates
aminovfariz
2026-06-05 14:02:57 +02:00
6cfc8e7533
ci: use PHP 8.5
aminovfariz
2026-06-05 14:00:55 +02:00
2e26cce91f
ci: run composer and QA gates directly on runner without Docker
aminovfariz
2026-06-05 13:48:32 +02:00
8e8ca4d5e7
ci: add GitHub Actions workflows
aminovfariz
2026-06-05 13:41:19 +02:00
c8cf2892c9
ci: trigger pipeline after runner fix with node on host
aminovfariz
2026-06-05 12:09:46 +02:00
1ae3d5d984
ci: trigger pipeline after runner workspace mount fix
aminovfariz
2026-06-05 12:01:13 +02:00
2e316b2901
ci: trigger pipeline after switching runner to host mode
aminovfariz
2026-06-05 11:59:33 +02:00
925f8ec87e
fix(ci): debug mounts via hostname inspect
aminovfariz
2026-06-05 11:54:12 +02:00
0486ebf2a2
fix(ci): debug runner container mounts to find host workspace path
aminovfariz
2026-06-05 11:52:22 +02:00
1d1f8479b6
fix(ci): set COMPOSE_PROJECT_NAME=breadcrumb-ci at job level for stable container names
aminovfariz
2026-06-05 11:50:01 +02:00
70d431cff5
fix(ci): install composer directly in runner container, not via docker run
aminovfariz
2026-06-05 11:48:26 +02:00
07cd2dd756
fix(ci): add path debug before composer install
aminovfariz
2026-06-05 11:46:58 +02:00
9668a23797
fix(ci): use GITHUB_WORKSPACE instead of pwd for composer docker run volume
aminovfariz
2026-06-05 11:46:19 +02:00
17ae333a39
fix(ci): install composer deps via docker run before compose up, force-recreate containers
aminovfariz
2026-06-05 11:45:31 +02:00
5df8abceaf
fix(ci): force recreate containers with docker compose down before up
aminovfariz
2026-06-05 11:44:08 +02:00
b0355791bb
fix(ci): add container state diagnostics before composer install
aminovfariz
2026-06-05 11:43:16 +02:00
a2ea9f385d
fix(ci): debug - ls /var/www to find why composer.json not found
aminovfariz
2026-06-05 11:42:23 +02:00
03cdfa7702
fix(ci): wait for php container and use explicit workdir for composer install
aminovfariz
2026-06-05 11:41:51 +02:00
3dca38d1c2
fix(ci): run composer install inside php container before QA gates
aminovfariz
2026-06-05 11:40:28 +02:00
5e8273b952
fix(ci): start only php+db+memcached in CI, skip nginx (file mount fails in runner)
aminovfariz
2026-06-05 11:39:45 +02:00
d47e45e9f8
fix(ci): create .env from .env.example before docker compose up in CI
aminovfariz
2026-06-05 11:32:59 +02:00
0e70e50abf
feat(ci): add Gitea Actions deploy pipeline and fix prod image module assets
aminovfariz
2026-06-05 11:22:47 +02:00
9caa771a73
feat(helpdesk): add delete button on edit page, fix flash notifications
aminovfariz
2026-06-01 15:51:36 +02:00
1caa198286
feat(helpdesk): rework handover tabs and assign flow
aminovfariz
2026-06-01 15:23:31 +02:00
47a26d0ca6
test(helpdesk): add tests for assign, submitForReview, resendNotification and HandoverNotificationService
aminovfariz
2026-06-01 14:59:10 +02:00
88bd7caae5
feat(helpdesk): rework handover create wizard with mode selection
aminovfariz
2026-06-01 14:50:30 +02:00
1c1e82b352
fix(helpdesk): handle nested table key from DB::select in user dropdowns
aminovfariz
2026-06-01 14:41:48 +02:00
3f56f3f279
fix(helpdesk): replace Guard::hasAbility() with AuthorizationService in create wizard
aminovfariz
2026-06-01 14:38:02 +02:00
c32a0f8c31
feat(helpdesk): Übergabe assignment workflow
aminovfariz
2026-06-01 14:35:03 +02:00
4f38911fce
fix(docker): copy module web assets as real files in prod image
aminovfariz
2026-05-29 11:50:45 +02:00
0d078f233d
fix: suppress open_basedir warning in favicon check, disable open_basedir in prod
aminovfariz
2026-05-28 19:07:47 +02:00
ec596d35d4
fix(auth): extend stream-based HTTP to POST requests in OidcHttpGateway
aminovfariz
2026-05-28 13:14:19 +02:00
4e51d9e882
fix(auth): use file_get_contents for OIDC GET requests to work around libcurl 8.14/OpenSSL 3.5 TLS fingerprint rejection by Microsoft
aminovfariz
2026-05-28 11:45:52 +02:00
293807b92a
chore: add .dockerignore for production image builds
aminovfariz
2026-05-28 09:31:36 +02:00
1b615a5e1c
fix: update local docker and php config
aminovfariz
2026-05-26 11:04:57 +02:00
cb2f429e0e
feat(helpdesk): add empty Dashboard page with sidebar nav item
aminovfariz
2026-05-26 11:01:35 +02:00
873b75465e
docs: important name change
fs
2026-04-29 10:00:36 +02:00
0a86d1b44b
docs: Readme changes
fs
2026-04-29 09:59:16 +02:00
545bcc789b
docs: replace ASCII umlaut fallbacks with proper äöüß across all .md
fs
2026-04-29 09:57:22 +02:00
2e73cb98b4
feat(console): add db:migrate CLI for idempotent core schema updates
fs
2026-04-29 08:59:57 +02:00
0c78dc4355
chore(setup): track config.php directly, slim README to setup checklist
fs
2026-04-29 08:37:45 +02:00
f36b169f67
chore(seed): bake live test connections into init.sql + helpdesk migration
fs
2026-04-29 08:27:47 +02:00
a5213977ca
fix(helpdesk): drop stale require of removed app-flash partial
fs
2026-04-29 07:59:51 +02:00
6146b0bd00
test(architecture): catch missing container bindings statically
fs
2026-04-27 08:54:21 +02:00
ca13fcd4a3
chore(i18n): drop user-lifecycle translation keys orphaned by cockpit cleanup
fs
2026-04-27 08:44:17 +02:00
cd2c9c5741
fix(user-lifecycle): bind UserSettingsGateway in container
fs
2026-04-26 21:30:34 +02:00
06118c1b26
fix(user-lifecycle): track last-run state in core, not in audit log
fs
2026-04-26 21:07:57 +02:00
97d09fbd94
fix(user-lifecycle): aside actions use normal size + repair policy ref link
fs
2026-04-26 20:43:28 +02:00
157eb18610
refactor(user-lifecycle): drop redundant titles and duplicate run-now button
fs
2026-04-26 20:38:15 +02:00
cc2cf3a254
feat(user-lifecycle): cockpit foundation — KPI row + aside quick actions
fs
2026-04-26 20:36:28 +02:00
004c25ac4b
refactor(user-lifecycle-audit): drop unused filterOptions / listFilterOptions
fs
2026-04-26 19:28:12 +02:00
8c07c2c93a
Revert "fix(user-lifecycle-panel): restore filter-options population"
fs
2026-04-26 18:25:34 +02:00
a1c6d62d44
fix(user-lifecycle-panel): restore filter-options population
fs
2026-04-26 18:21:27 +02:00
144d8410a4
Embed user lifecycle audit into settings page
fs
2026-04-26 18:03:42 +02:00
01f5265eff
test(architecture): drop stale actionFragmentContext mentions
fs
2026-04-26 17:47:36 +02:00
9ec10f5c02
refactor(action-context): remove unused fragment aggregator + building block
fs
2026-04-26 17:34:53 +02:00
95723cebd9
test(architecture): enforce defensive reads in shared form partials
fs
2026-04-26 17:19:14 +02:00
1bd4607b66
refactor(creates-batch): migrate roles/permissions/tenants-create (step 10)
fs
2026-04-26 15:00:05 +02:00
d6be536fbf
refactor(departments-create): migrate to actionCreateContext (step 9)
fs
2026-04-26 14:44:09 +02:00
480b57ef04
refactor(users-edit): migrate to actionEditContext (step 6)
fs
2026-04-26 14:10:08 +02:00
a038d0921b
refactor(permissions-edit): migrate to actionEditContext (step 5)
fs
2026-04-26 10:49:04 +02:00
1974aba6c2
refactor(roles-edit): migrate to actionEditContext (step 4)
fs
2026-04-26 10:40:48 +02:00
dffc4db9a2
fix(routing): prevent login redirect loops on alias targets
fs
2026-04-26 10:20:28 +02:00
d0544d3428
refactor(tenants-edit): migrate to actionEditContext (step 3)
fs
2026-04-26 10:05:58 +02:00
e29e6c3136
fix(tenants-create): define $canUpdateTenant before form partial
fs
2026-04-26 10:05:42 +02:00