From 6be9a4ccf60dcbca0d3a3d6ea5dc1b25cffef9fb Mon Sep 17 00:00:00 2001 From: K Muller Date: Mon, 26 Jan 2026 11:04:57 +0100 Subject: [PATCH] feat: :sparkles: add admin secure + fix missing element on manifest for the queue --- .env.example | 5 + composer.json | 1 + composer.lock | 272 +++++++++++++++++++++++++++++++++++++++++++++++++- manifest.yaml | 24 +++++ 4 files changed, 301 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 4ff52b74..aebaf7b6 100644 --- a/.env.example +++ b/.env.example @@ -75,3 +75,8 @@ GOOGLE_MAPS_KEY= SCOUT_PREFIX= MEILISEARCH_HOST= MEILISEARCH_KEY= + +# ADMIN SECURE +UWIL_ADMIN_SECURE_CIDR_LIST="" +UWIL_ADMIN_SECURE_CIDR_PROJECT_ALLOWED_LIST="" + diff --git a/composer.json b/composer.json index 7036732b..5492dcd5 100644 --- a/composer.json +++ b/composer.json @@ -24,6 +24,7 @@ "sentry/sentry-laravel": "^4.18", "spatie/laravel-translatable": "^6.11", "tightenco/ziggy": "^2.5", + "uwil/admin-secure-laravel": "^5.0", "uwil/k8s-laravel": "^2.0", "uwil/laravel-backend": "^3.0", "uwil/laravel-common": "^4.1" diff --git a/composer.lock b/composer.lock index c1ae247c..a1929b54 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b1d9d1034b8cd27b5f5de54e9fce077a", + "content-hash": "99083c506520f599b9b50bd66ca930a2", "packages": [ { "name": "24slides/laravel-saml2", @@ -586,6 +586,102 @@ ], "time": "2025-10-31T18:51:33+00:00" }, + { + "name": "dxw/cidr", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/dxw/cidr.git", + "reference": "b07dd398f5a93441f57a687982bc7d0ffb96729a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dxw/cidr/zipball/b07dd398f5a93441f57a687982bc7d0ffb96729a", + "reference": "b07dd398f5a93441f57a687982bc7d0ffb96729a", + "shasum": "" + }, + "require": { + "dxw/result": "^1.0", + "php": "^7.4||^8.1", + "phpseclib/phpseclib": "^2.0" + }, + "require-dev": { + "dxw/php-cs-fixer-config": "^2.0", + "kahlan/kahlan": "^5.2", + "vimeo/psalm": "^5.14" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dxw\\CIDR\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "dxw", + "email": "team@govpress.com", + "homepage": "https://www.dxw.com" + } + ], + "description": "IP address matching with CIDR ranges", + "homepage": "https://github.com/dxw/cidr", + "support": { + "issues": "https://github.com/dxw/cidr/issues", + "source": "https://github.com/dxw/cidr/tree/v3.2.0" + }, + "time": "2023-08-14T10:14:13+00:00" + }, + { + "name": "dxw/result", + "version": "v1.0.6", + "source": { + "type": "git", + "url": "https://github.com/dxw/result.git", + "reference": "d554bb10f0cf74056ccd26526688e194652eef79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dxw/result/zipball/d554bb10f0cf74056ccd26526688e194652eef79", + "reference": "d554bb10f0cf74056ccd26526688e194652eef79", + "shasum": "" + }, + "require": { + "php": "^7.4||^8.1" + }, + "require-dev": { + "dxw/php-cs-fixer-config": "^2.1", + "kahlan/kahlan": "^5.2", + "vimeo/psalm": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dxw\\Result\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mallory Adams", + "email": "mallory@dxw.com", + "homepage": "https://www.dxw.com/" + } + ], + "description": "Result values", + "homepage": "https://github.com/dxw/result", + "support": { + "issues": "https://github.com/dxw/result/issues", + "source": "https://github.com/dxw/result/tree/v1.0.6" + }, + "time": "2023-07-19T11:14:28+00:00" + }, { "name": "egulias/email-validator", "version": "4.0.4", @@ -3899,6 +3995,116 @@ ], "time": "2025-08-21T11:53:16+00:00" }, + { + "name": "phpseclib/phpseclib", + "version": "2.0.50", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "1815ddd00195487cc922577751c175f339f4e20f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/1815ddd00195487cc922577751c175f339f4e20f", + "reference": "1815ddd00195487cc922577751c175f339f4e20f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.", + "ext-xml": "Install the XML extension to load XML formatted public keys." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/2.0.50" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2025-12-15T11:48:50+00:00" + }, { "name": "psr/clock", "version": "1.0.0", @@ -7922,6 +8128,70 @@ }, "time": "2024-12-21T16:25:41+00:00" }, + { + "name": "uwil/admin-secure-laravel", + "version": "5.0.0", + "source": { + "type": "git", + "url": "git@lab.s-web.fr:ldc-web/projets/ldc-web-admin-secure-laravel.git", + "reference": "7d9c052db4318752a312dc9763bc8c31ea053aa2" + }, + "dist": { + "type": "zip", + "url": "https://lab.s-web.fr/api/v4/projects/20/packages/composer/archives/uwil/admin-secure-laravel.zip?sha=7d9c052db4318752a312dc9763bc8c31ea053aa2", + "reference": "7d9c052db4318752a312dc9763bc8c31ea053aa2", + "shasum": "" + }, + "require": { + "dxw/cidr": "^3.2", + "illuminate/support": "~11|~12", + "laravel/framework": "~11|~12", + "php": "^8.3", + "symfony/options-resolver": "^7.0" + }, + "require-dev": { + "larastan/larastan": "^2.9", + "orchestra/testbench": "^9", + "phpunit/php-code-coverage": "^11", + "phpunit/phpunit": "^11", + "slevomat/coding-standard": "^8", + "squizlabs/php_codesniffer": "^3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Uwil\\AdminSecure\\Laravel\\AdminSecureServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Uwil\\AdminSecure\\Laravel\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Uwil\\AdminSecure\\Laravel\\Tests\\": "tests" + } + }, + "scripts": { + "test": [ + "vendor/bin/phpunit" + ], + "post-autoload-dump": [ + "@php ./vendor/bin/testbench package:discover --ansi" + ] + }, + "license": [ + "MIT" + ], + "description": "Restrict access to LDC Network", + "support": { + "email": "digital@ldc.fr", + "issues": "https://lab.s-web.fr/ldc-web/projets/ldc-web-admin-secure-laravel/-/issues" + } + }, { "name": "uwil/k8s-laravel", "version": "2.0.0", diff --git a/manifest.yaml b/manifest.yaml index e500f077..6fedec4c 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -42,6 +42,7 @@ data: SAML2_CONTACT_TECHNICAL_EMAIL: "${APP_SAML2_CONTACT_TECHNICAL_EMAIL}" SAML2_CONTACT_SUPPORT_EMAIL: "${APP_SAML2_CONTACT_SUPPORT_EMAIL}" SAML2_DEFAULT_TENANT_UUID: "${APP_SAML2_DEFAULT_TENANT_UUID}" + UWIL_ADMIN_SECURE_CIDR_LIST: "${APP_GLOBAL_UWIL_ADMIN_SECURE_CIDR_LIST}" --- apiVersion: v1 kind: PersistentVolumeClaim @@ -85,6 +86,29 @@ spec: volumeMounts: - name: storage mountPath: /app/srcs/storage + - name: ${CI_PROJECT_PATH_SLUG}-queue-worker + image: $IMAGE_TAG + lifecycle: + preStop: + exec: + command: [ "/bin/sh", "-c", "kill -s TERM 1; while test $(ps ax | grep -v grep | grep bash | wc -l) -gt 0; do sleep 2s; done" ] + resources: + limits: + cpu: "${APP_CI_CPU_LIMIT}" + memory: "${APP_CI_MEMORY_LIMIT}" + requests: + cpu: "${APP_CI_CPU_REQUEST}" + memory: "${APP_CI_MEMORY_REQUEST}" + command: + - "bash" + args: + - "k8s-queues.sh" + envFrom: + - configMapRef: + name: ${CI_PROJECT_PATH_SLUG}-config-map + volumeMounts: + - name: storage + mountPath: /app/srcs/storage imagePullSecrets: - name: docker-registry-credentials securityContext: