Commit Graph

38 Commits

Author SHA1 Message Date
Alexis Couvreur
ce7de13ade refactor: remove session manager
The session manager is now simply Sablier
2025-03-08 12:17:12 -05:00
Alexis Couvreur
b1e8fc2f20 test(docker): use testcontainers (#519)
* refactor: move app/theme to pkg/theme

* refactor

* wip

* use dockerindocker

* add providertest

* wip

* wip

* test(docker): get state  now uses dind container to test against a real provider

* test(docker): move to docker_test package

* refactor(docker): create container_inspect.go

* test(docker): add more dind test

* test(docker): event test now use docker in docker

* refactor: remove unused instance  type props

* refactor test docker

* fix instance list  sort

* stabilize test

* remove testcontainers custom config
2025-03-01 19:34:36 -05:00
Alexis Couvreur
8844a36e4a refactor(logging): use slog instead of logrus (#501)
Everything uses slog now and the logger is part of every struct
2025-02-02 23:01:51 -05:00
Alexis Couvreur
00cc153d7a fix: add http error responses (#494)
This features adds rfc7807 Problem detail responses when an error happens processing a request.

This will greatly improve the common issues  with "blank pages" and "404 pages" issues which should now properly tell the user what input was wrong (group that does not exist, container name that does not exist, etc.)
2025-02-02 00:00:49 -05:00
Alexis Couvreur
8b113a3c76 fix: changing module to github.com/sablierapp/sablier 2024-10-20 23:54:53 -04:00
Alexis Couvreur
9821c621fb fix(dynamic): avoid panic on nil instance
For some yet unknown reasons, some instances are returned as nil.

This commits adds a nil check to prevent that and logs a warning to help further debugging.

Fixes #380
2024-10-01 17:30:14 -07:00
valankar
b7ffc86b43 fix(api): add Cache-Control header on dynamic page to prevent caching by services like Cloudflare. (#389)
* Disable caching for dynamic page.

* Add test for Cache-Control header.
2024-10-01 17:30:14 -07:00
Alexis Couvreur
df1b8d21a6 feat(http): add Content-Length header on dynamic strategy
The Content-Length header will help system work better with long payloads.

The ngx_wasm_module from kong is not able to read the whole request without this header.
2024-04-30 15:49:22 -04:00
Alexis Couvreur
9167e9c8c8 refactor(theme): themes are loaded at startup instead of every request 2024-04-30 14:07:53 -04:00
Alexis Couvreur
8b57b9cd05 fix: use paramter for dynamic strategy
The value was using a hardcoded 5s

Fixes #175
2023-09-11 13:43:03 -04:00
Alexis Couvreur
795792058f feat: add filter by labels (#134)
You are now able to use labels on containers and services such as `--sablier.enable=true` and `--sablier.group=mygroup` to select groups.
2023-03-28 21:31:22 -04:00
Alexis Couvreur
dd07ed0db0 fix(config): set session_duration optional with default value from sessions.default-duration 2023-03-26 22:10:43 -04:00
Alexis Couvreur
2e0dc8320d feat: add healthcheck capabilities 2022-11-14 18:46:38 +00:00
Alexis Couvreur
1d34a812fd fix: set routes logging to Debug 2022-11-14 01:47:07 +00:00
Alexis Couvreur
cca050be08 fix(sessions): request blocking session is stopped upon user cancellation 2022-11-11 17:00:35 -05:00
Alexis Couvreur
006fb6679b refactor(events): close the channel from the sender 2022-11-11 17:00:35 -05:00
Alexis Couvreur
546b378416 feat(strategy): add option to show instances details
Closes #77
2022-11-10 11:31:46 -05:00
Alexis Couvreur
ec77d127ba test: fix typo existant to existent
Closes #82
2022-11-07 16:54:48 -05:00
Alexis Couvreur
8096a4e87e feat: add DesiredReplicas inside State struct
For now only the `Kubernetes` provider benefits from this improvement as `Docker` and `Swarm` have hardcoded 1 value
2022-11-03 20:55:09 -04:00
Alexis Couvreur
8a85a32561 feat: update JSON object returned by blocking strategy
Closes #68
2022-11-03 16:37:41 -04:00
Alexis Couvreur
62e9d33ec8 feat(http): add graceful shutdown 2022-11-02 23:15:06 -04:00
Alexis Couvreur
f842b491c6 test(render): add refresh frequency test 2022-11-02 23:15:06 -04:00
Alexis Couvreur
cf9f2f8ae3 feat(strategy): add dynamic theme listing endpoint /strategies/dynamic/themes 2022-11-02 23:15:06 -04:00
Alexis Couvreur
c47137edc7 feat(themes): add custom themes with security feature 2022-11-02 23:15:06 -04:00
Alexis Couvreur
e72a307163 fix(render): allow to load default themes when specifying custom themes 2022-11-02 23:15:06 -04:00
Alexis Couvreur
cc01caa5d4 feat(config): add strategy config 2022-11-02 23:15:06 -04:00
Alexis Couvreur
6cebeef97d fix(render): set refresh frequency to seconds
merge this with a6410f8613
2022-11-02 23:15:06 -04:00
Alexis Couvreur
6eb0789b7b feat(strategies): add blocking strategy 2022-11-02 23:15:06 -04:00
Alexis Couvreur
df2a67a290 feat: default theme for dynamic strategy is hacker-terminal 2022-11-02 23:15:06 -04:00
Alexis Couvreur
3196b1aa63 fix(render): set refresh frequency to seconds 2022-11-02 23:15:06 -04:00
Alexis Couvreur
723ee38a3e feat(plugins): add traefik plugin 2022-11-02 23:15:06 -04:00
Alexis Couvreur
160faaad0f feat(dynamic): sort instances by name
To keep a stable order, instances are sorted by name
2022-11-02 23:15:06 -04:00
Alexis Couvreur
e32425c468 fix(themes): remove extra "}" 2022-11-02 23:15:06 -04:00
Alexis Couvreur
04c55c2f49 stabilization 2022-11-02 23:15:06 -04:00
Alexis Couvreur
c827154506 refactor: instance are in unrecoverable state instead of error
To avoid confusion between error from a call or network.
Instance has an Unrecoverable state instead of Error.
2022-11-02 23:15:06 -04:00
Alexis Couvreur
c63bbee7dd feat(theme): add success and error to shuffle 2022-11-02 23:15:06 -04:00
Alexis Couvreur
42b9f2c1b6 feat: add version endpoint 2022-11-02 23:15:06 -04:00
Alexis Couvreur
f725d49521 feat: add ghost, hacker-terminal, matrix and shuffle themes 2022-11-02 23:15:06 -04:00