itsi 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Cargo.lock +1535 -45
- data/{sandbox/itsi_itsi_file/Itsi.rb → Itsi.rb} +19 -13
- data/Rakefile +8 -7
- data/crates/itsi_error/src/lib.rs +9 -0
- data/crates/itsi_rb_helpers/Cargo.toml +1 -0
- data/crates/itsi_rb_helpers/src/heap_value.rs +18 -0
- data/crates/itsi_rb_helpers/src/lib.rs +34 -7
- data/crates/itsi_server/Cargo.toml +69 -30
- data/crates/itsi_server/src/lib.rs +79 -147
- data/crates/itsi_server/src/{body_proxy → ruby_types/itsi_body_proxy}/big_bytes.rs +10 -5
- data/crates/itsi_server/src/{body_proxy/itsi_body_proxy.rs → ruby_types/itsi_body_proxy/mod.rs} +22 -3
- data/crates/itsi_server/src/ruby_types/itsi_grpc_request.rs +147 -0
- data/crates/itsi_server/src/ruby_types/itsi_grpc_response.rs +19 -0
- data/crates/itsi_server/src/ruby_types/itsi_grpc_stream/mod.rs +216 -0
- data/{gems/server/ext/itsi_server/src/request/itsi_request.rs → crates/itsi_server/src/ruby_types/itsi_http_request.rs} +101 -117
- data/crates/itsi_server/src/{response/itsi_response.rs → ruby_types/itsi_http_response.rs} +72 -41
- data/crates/itsi_server/src/ruby_types/itsi_server/file_watcher.rs +225 -0
- data/crates/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +355 -0
- data/crates/itsi_server/src/ruby_types/itsi_server.rs +82 -0
- data/crates/itsi_server/src/ruby_types/mod.rs +55 -0
- data/crates/itsi_server/src/server/bind.rs +13 -5
- data/crates/itsi_server/src/server/byte_frame.rs +32 -0
- data/crates/itsi_server/src/server/cache_store.rs +74 -0
- data/crates/itsi_server/src/server/itsi_service.rs +172 -0
- data/crates/itsi_server/src/server/lifecycle_event.rs +3 -0
- data/crates/itsi_server/src/server/listener.rs +102 -2
- data/crates/itsi_server/src/server/middleware_stack/middleware.rs +153 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/allow_list.rs +47 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_api_key.rs +58 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_basic.rs +82 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +321 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/cache_control.rs +139 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/compression.rs +300 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/cors.rs +287 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/deny_list.rs +48 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +127 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/etag.rs +191 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/grpc_service.rs +72 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/header_interpretation.rs +85 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/intrusion_protection.rs +195 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +82 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/mod.rs +82 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +216 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +124 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/redirect.rs +76 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/request_headers.rs +43 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/response_headers.rs +34 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +93 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +162 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/string_rewrite.rs +158 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/token_source.rs +12 -0
- data/crates/itsi_server/src/server/middleware_stack/mod.rs +315 -0
- data/crates/itsi_server/src/server/mod.rs +8 -1
- data/crates/itsi_server/src/server/process_worker.rs +38 -12
- data/crates/itsi_server/src/server/rate_limiter.rs +565 -0
- data/crates/itsi_server/src/server/request_job.rs +11 -0
- data/crates/itsi_server/src/server/serve_strategy/cluster_mode.rs +119 -42
- data/crates/itsi_server/src/server/serve_strategy/mod.rs +9 -6
- data/crates/itsi_server/src/server/serve_strategy/single_mode.rs +256 -111
- data/crates/itsi_server/src/server/signal.rs +19 -0
- data/crates/itsi_server/src/server/static_file_server.rs +984 -0
- data/crates/itsi_server/src/server/thread_worker.rs +139 -94
- data/crates/itsi_server/src/server/types.rs +43 -0
- data/crates/itsi_server/test.md +14 -0
- data/crates/itsi_tracing/Cargo.toml +1 -0
- data/crates/itsi_tracing/src/lib.rs +216 -45
- data/docs/.gitignore +7 -0
- data/docs/.gitpod.yml +15 -0
- data/docs/Itsi.rb +17 -0
- data/docs/content/_index.md +17 -0
- data/docs/content/about.md +6 -0
- data/docs/content/docs/_index.md +18 -0
- data/docs/content/docs/first-page.md +9 -0
- data/docs/content/docs/folder/_index.md +10 -0
- data/docs/content/docs/folder/leaf.md +7 -0
- data/docs/go.mod +5 -0
- data/docs/go.sum +2 -0
- data/docs/hugo.yaml +77 -0
- data/examples/static_assets_example.rb +83 -0
- data/gems/_index.md +18 -0
- data/gems/scheduler/CODE_OF_CONDUCT.md +7 -0
- data/gems/scheduler/Cargo.lock +75 -14
- data/gems/scheduler/README.md +5 -0
- data/gems/scheduler/_index.md +7 -0
- data/gems/scheduler/itsi-scheduler.gemspec +4 -1
- data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
- data/gems/scheduler/lib/itsi/scheduler.rb +2 -2
- data/gems/scheduler/test/test_file_io.rb +0 -1
- data/gems/scheduler/test/test_itsi_scheduler.rb +1 -1
- data/gems/server/CHANGELOG.md +5 -0
- data/gems/server/CODE_OF_CONDUCT.md +7 -0
- data/gems/server/Cargo.lock +1536 -45
- data/gems/server/README.md +4 -0
- data/gems/server/_index.md +6 -0
- data/gems/server/exe/itsi +33 -74
- data/gems/server/itsi-server.gemspec +3 -2
- data/gems/server/lib/itsi/{request.rb → http_request.rb} +29 -5
- data/gems/server/lib/itsi/http_response.rb +39 -0
- data/gems/server/lib/itsi/server/Itsi.rb +11 -19
- data/gems/server/lib/itsi/server/config/dsl.rb +506 -0
- data/gems/server/lib/itsi/server/config.rb +103 -8
- data/gems/server/lib/itsi/server/default_app/default_app.rb +38 -0
- data/gems/server/lib/itsi/server/grpc_interface.rb +213 -0
- data/gems/server/lib/itsi/server/rack/handler/itsi.rb +8 -17
- data/gems/server/lib/itsi/server/rack_interface.rb +23 -4
- data/gems/server/lib/itsi/server/scheduler_interface.rb +1 -1
- data/gems/server/lib/itsi/server/scheduler_mode.rb +4 -0
- data/gems/server/lib/itsi/server/signal_trap.rb +7 -1
- data/gems/server/lib/itsi/server/version.rb +1 -1
- data/gems/server/lib/itsi/server.rb +74 -63
- data/gems/server/lib/itsi/standard_headers.rb +86 -0
- data/gems/server/test/helpers/test_helper.rb +12 -12
- data/gems/server/test/test_itsi_server.rb +2 -2
- data/lib/itsi/version.rb +1 -1
- data/sandbox/itsi_file/Gemfile +11 -0
- data/sandbox/itsi_file/Gemfile.lock +69 -0
- data/sandbox/itsi_file/Itsi.rb +276 -0
- data/sandbox/itsi_file/error.html +2 -0
- data/sandbox/itsi_file/organisations_controller.rb +20 -0
- data/sandbox/itsi_file/public/assets/image.png +0 -0
- data/sandbox/itsi_file/public/assets/index.html +1 -0
- data/sandbox/itsi_sandbox_hanami/Gemfile.lock +2 -2
- data/sandbox/itsi_sandbox_rack/Gemfile.lock +2 -2
- data/sandbox/itsi_sandbox_rack/config.ru +2 -15
- data/sandbox/itsi_sandbox_rails/.dockerignore +2 -5
- data/sandbox/itsi_sandbox_rails/.github/workflows/ci.yml +1 -1
- data/sandbox/itsi_sandbox_rails/.gitignore +2 -1
- data/sandbox/itsi_sandbox_rails/Dockerfile +6 -9
- data/sandbox/itsi_sandbox_rails/Gemfile +16 -22
- data/sandbox/itsi_sandbox_rails/Gemfile.lock +100 -225
- data/sandbox/itsi_sandbox_rails/app/assets/config/manifest.js +4 -0
- data/sandbox/itsi_sandbox_rails/app/assets/stylesheets/application.css +11 -6
- data/sandbox/itsi_sandbox_rails/app/channels/application_cable/channel.rb +4 -0
- data/sandbox/itsi_sandbox_rails/app/channels/application_cable/connection.rb +4 -0
- data/sandbox/itsi_sandbox_rails/app/controllers/live_controller.rb +7 -8
- data/sandbox/itsi_sandbox_rails/app/controllers/uploads_controller.rb +0 -3
- data/sandbox/itsi_sandbox_rails/app/views/layouts/application.html.erb +2 -7
- data/sandbox/itsi_sandbox_rails/bin/docker-entrypoint +3 -4
- data/sandbox/itsi_sandbox_rails/bin/setup +8 -5
- data/sandbox/itsi_sandbox_rails/config/application.rb +1 -35
- data/sandbox/itsi_sandbox_rails/config/cable.yml +3 -10
- data/sandbox/itsi_sandbox_rails/config/credentials.yml.enc +1 -1
- data/sandbox/itsi_sandbox_rails/config/database.yml +9 -19
- data/sandbox/itsi_sandbox_rails/config/environment.rb +1 -1
- data/sandbox/itsi_sandbox_rails/config/environments/development.rb +21 -12
- data/sandbox/itsi_sandbox_rails/config/environments/production.rb +49 -34
- data/sandbox/itsi_sandbox_rails/config/environments/test.rb +19 -5
- data/sandbox/itsi_sandbox_rails/config/initializers/assets.rb +5 -0
- data/sandbox/itsi_sandbox_rails/config/initializers/filter_parameter_logging.rb +1 -1
- data/sandbox/itsi_sandbox_rails/config/initializers/permissions_policy.rb +13 -0
- data/sandbox/itsi_sandbox_rails/config/puma.rb +2 -9
- data/sandbox/itsi_sandbox_rails/config.ru +0 -1
- data/sandbox/itsi_sandbox_rails/db/migrate/20250301041554_create_posts.rb +1 -1
- data/sandbox/itsi_sandbox_rails/db/schema.rb +2 -2
- data/sandbox/itsi_sandbox_rails/lib/assets/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/public/404.html +66 -113
- data/sandbox/itsi_sandbox_rails/public/406-unsupported-browser.html +65 -113
- data/sandbox/itsi_sandbox_rails/public/422.html +66 -113
- data/sandbox/itsi_sandbox_rails/public/500.html +65 -113
- data/sandbox/itsi_sandbox_rails/public/icon.png +0 -0
- data/sandbox/itsi_sandbox_rails/public/icon.svg +2 -2
- data/sandbox/itsi_sandbox_rails/test/channels/application_cable/connection_test.rb +13 -0
- data/sandbox/itsi_sandbox_roda/Gemfile.lock +3 -10
- data/tasks.txt +72 -35
- metadata +89 -139
- data/crates/itsi_server/src/body_proxy/mod.rs +0 -2
- data/crates/itsi_server/src/request/itsi_request.rs +0 -298
- data/crates/itsi_server/src/request/mod.rs +0 -1
- data/crates/itsi_server/src/response/mod.rs +0 -1
- data/crates/itsi_server/src/server/itsi_server.rs +0 -288
- data/gems/scheduler/ext/itsi_error/Cargo.lock +0 -368
- data/gems/scheduler/ext/itsi_error/Cargo.toml +0 -11
- data/gems/scheduler/ext/itsi_error/src/from.rs +0 -68
- data/gems/scheduler/ext/itsi_error/src/lib.rs +0 -24
- data/gems/scheduler/ext/itsi_instrument_entry/Cargo.toml +0 -15
- data/gems/scheduler/ext/itsi_instrument_entry/src/lib.rs +0 -31
- data/gems/scheduler/ext/itsi_rb_helpers/Cargo.lock +0 -355
- data/gems/scheduler/ext/itsi_rb_helpers/Cargo.toml +0 -10
- data/gems/scheduler/ext/itsi_rb_helpers/src/heap_value.rs +0 -121
- data/gems/scheduler/ext/itsi_rb_helpers/src/lib.rs +0 -201
- data/gems/scheduler/ext/itsi_scheduler/Cargo.toml +0 -24
- data/gems/scheduler/ext/itsi_scheduler/extconf.rb +0 -6
- data/gems/scheduler/ext/itsi_scheduler/src/itsi_scheduler/io_helpers.rs +0 -56
- data/gems/scheduler/ext/itsi_scheduler/src/itsi_scheduler/io_waiter.rs +0 -44
- data/gems/scheduler/ext/itsi_scheduler/src/itsi_scheduler/timer.rs +0 -44
- data/gems/scheduler/ext/itsi_scheduler/src/itsi_scheduler.rs +0 -308
- data/gems/scheduler/ext/itsi_scheduler/src/lib.rs +0 -38
- data/gems/scheduler/ext/itsi_server/Cargo.lock +0 -2956
- data/gems/scheduler/ext/itsi_server/Cargo.toml +0 -50
- data/gems/scheduler/ext/itsi_server/extconf.rb +0 -6
- data/gems/scheduler/ext/itsi_server/src/body_proxy/big_bytes.rs +0 -104
- data/gems/scheduler/ext/itsi_server/src/body_proxy/itsi_body_proxy.rs +0 -122
- data/gems/scheduler/ext/itsi_server/src/body_proxy/mod.rs +0 -2
- data/gems/scheduler/ext/itsi_server/src/env.rs +0 -43
- data/gems/scheduler/ext/itsi_server/src/lib.rs +0 -180
- data/gems/scheduler/ext/itsi_server/src/request/itsi_request.rs +0 -298
- data/gems/scheduler/ext/itsi_server/src/request/mod.rs +0 -1
- data/gems/scheduler/ext/itsi_server/src/response/itsi_response.rs +0 -357
- data/gems/scheduler/ext/itsi_server/src/response/mod.rs +0 -1
- data/gems/scheduler/ext/itsi_server/src/server/bind.rs +0 -174
- data/gems/scheduler/ext/itsi_server/src/server/bind_protocol.rs +0 -37
- data/gems/scheduler/ext/itsi_server/src/server/io_stream.rs +0 -104
- data/gems/scheduler/ext/itsi_server/src/server/itsi_server.rs +0 -288
- data/gems/scheduler/ext/itsi_server/src/server/lifecycle_event.rs +0 -9
- data/gems/scheduler/ext/itsi_server/src/server/listener.rs +0 -318
- data/gems/scheduler/ext/itsi_server/src/server/mod.rs +0 -11
- data/gems/scheduler/ext/itsi_server/src/server/process_worker.rs +0 -203
- data/gems/scheduler/ext/itsi_server/src/server/serve_strategy/cluster_mode.rs +0 -260
- data/gems/scheduler/ext/itsi_server/src/server/serve_strategy/mod.rs +0 -27
- data/gems/scheduler/ext/itsi_server/src/server/serve_strategy/single_mode.rs +0 -276
- data/gems/scheduler/ext/itsi_server/src/server/signal.rs +0 -74
- data/gems/scheduler/ext/itsi_server/src/server/thread_worker.rs +0 -399
- data/gems/scheduler/ext/itsi_server/src/server/tls/locked_dir_cache.rs +0 -132
- data/gems/scheduler/ext/itsi_server/src/server/tls.rs +0 -265
- data/gems/scheduler/ext/itsi_tracing/Cargo.lock +0 -274
- data/gems/scheduler/ext/itsi_tracing/Cargo.toml +0 -16
- data/gems/scheduler/ext/itsi_tracing/src/lib.rs +0 -58
- data/gems/server/ext/itsi_error/Cargo.lock +0 -368
- data/gems/server/ext/itsi_error/Cargo.toml +0 -11
- data/gems/server/ext/itsi_error/src/from.rs +0 -68
- data/gems/server/ext/itsi_error/src/lib.rs +0 -24
- data/gems/server/ext/itsi_instrument_entry/Cargo.toml +0 -15
- data/gems/server/ext/itsi_instrument_entry/src/lib.rs +0 -31
- data/gems/server/ext/itsi_rb_helpers/Cargo.lock +0 -355
- data/gems/server/ext/itsi_rb_helpers/Cargo.toml +0 -10
- data/gems/server/ext/itsi_rb_helpers/src/heap_value.rs +0 -121
- data/gems/server/ext/itsi_rb_helpers/src/lib.rs +0 -201
- data/gems/server/ext/itsi_scheduler/Cargo.toml +0 -24
- data/gems/server/ext/itsi_scheduler/extconf.rb +0 -6
- data/gems/server/ext/itsi_scheduler/src/itsi_scheduler/io_helpers.rs +0 -56
- data/gems/server/ext/itsi_scheduler/src/itsi_scheduler/io_waiter.rs +0 -44
- data/gems/server/ext/itsi_scheduler/src/itsi_scheduler/timer.rs +0 -44
- data/gems/server/ext/itsi_scheduler/src/itsi_scheduler.rs +0 -308
- data/gems/server/ext/itsi_scheduler/src/lib.rs +0 -38
- data/gems/server/ext/itsi_server/Cargo.lock +0 -2956
- data/gems/server/ext/itsi_server/Cargo.toml +0 -50
- data/gems/server/ext/itsi_server/extconf.rb +0 -6
- data/gems/server/ext/itsi_server/src/body_proxy/big_bytes.rs +0 -104
- data/gems/server/ext/itsi_server/src/body_proxy/itsi_body_proxy.rs +0 -122
- data/gems/server/ext/itsi_server/src/body_proxy/mod.rs +0 -2
- data/gems/server/ext/itsi_server/src/env.rs +0 -43
- data/gems/server/ext/itsi_server/src/lib.rs +0 -180
- data/gems/server/ext/itsi_server/src/request/mod.rs +0 -1
- data/gems/server/ext/itsi_server/src/response/itsi_response.rs +0 -357
- data/gems/server/ext/itsi_server/src/response/mod.rs +0 -1
- data/gems/server/ext/itsi_server/src/server/bind.rs +0 -174
- data/gems/server/ext/itsi_server/src/server/bind_protocol.rs +0 -37
- data/gems/server/ext/itsi_server/src/server/io_stream.rs +0 -104
- data/gems/server/ext/itsi_server/src/server/itsi_server.rs +0 -288
- data/gems/server/ext/itsi_server/src/server/lifecycle_event.rs +0 -9
- data/gems/server/ext/itsi_server/src/server/listener.rs +0 -318
- data/gems/server/ext/itsi_server/src/server/mod.rs +0 -11
- data/gems/server/ext/itsi_server/src/server/process_worker.rs +0 -203
- data/gems/server/ext/itsi_server/src/server/serve_strategy/cluster_mode.rs +0 -260
- data/gems/server/ext/itsi_server/src/server/serve_strategy/mod.rs +0 -27
- data/gems/server/ext/itsi_server/src/server/serve_strategy/single_mode.rs +0 -276
- data/gems/server/ext/itsi_server/src/server/signal.rs +0 -74
- data/gems/server/ext/itsi_server/src/server/thread_worker.rs +0 -399
- data/gems/server/ext/itsi_server/src/server/tls/locked_dir_cache.rs +0 -132
- data/gems/server/ext/itsi_server/src/server/tls.rs +0 -265
- data/gems/server/ext/itsi_tracing/Cargo.lock +0 -274
- data/gems/server/ext/itsi_tracing/Cargo.toml +0 -16
- data/gems/server/ext/itsi_tracing/src/lib.rs +0 -58
- data/gems/server/lib/itsi/server/options_dsl.rb +0 -401
- data/gems/server/lib/itsi/stream_io.rb +0 -38
- data/location_dsl.rb +0 -381
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/docker-setup.sample +0 -3
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/post-app-boot.sample +0 -3
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/post-deploy.sample +0 -14
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/post-proxy-reboot.sample +0 -3
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/pre-app-boot.sample +0 -3
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/pre-build.sample +0 -51
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/pre-connect.sample +0 -47
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/pre-deploy.sample +0 -109
- data/sandbox/itsi_sandbox_rails/.kamal/hooks/pre-proxy-reboot.sample +0 -3
- data/sandbox/itsi_sandbox_rails/.kamal/secrets +0 -17
- data/sandbox/itsi_sandbox_rails/bin/dev +0 -2
- data/sandbox/itsi_sandbox_rails/bin/jobs +0 -6
- data/sandbox/itsi_sandbox_rails/bin/kamal +0 -27
- data/sandbox/itsi_sandbox_rails/bin/thrust +0 -5
- data/sandbox/itsi_sandbox_rails/config/cache.yml +0 -16
- data/sandbox/itsi_sandbox_rails/config/deploy.yml +0 -116
- data/sandbox/itsi_sandbox_rails/config/queue.yml +0 -18
- data/sandbox/itsi_sandbox_rails/config/recurring.yml +0 -10
- data/sandbox/itsi_sandbox_rails/db/cable_schema.rb +0 -11
- data/sandbox/itsi_sandbox_rails/db/cache_schema.rb +0 -14
- data/sandbox/itsi_sandbox_rails/db/queue_schema.rb +0 -129
- data/sandbox/itsi_sandbox_rails/public/400.html +0 -114
- data/sandbox/itsi_sandbox_rails/test/fixtures/posts.yml +0 -9
- data/sandbox/itsi_sandbox_rails/test/models/post_test.rb +0 -7
- /data/{sandbox/itsi_sandbox_rails/script/.keep → crates/_index.md} +0 -0
- /data/gems/server/lib/itsi/{index.html → server/default_app/index.html} +0 -0
@@ -1,16 +0,0 @@
|
|
1
|
-
default: &default
|
2
|
-
store_options:
|
3
|
-
# Cap age of oldest cache entry to fulfill retention policies
|
4
|
-
# max_age: <%= 60.days.to_i %>
|
5
|
-
max_size: <%= 256.megabytes %>
|
6
|
-
namespace: <%= Rails.env %>
|
7
|
-
|
8
|
-
development:
|
9
|
-
<<: *default
|
10
|
-
|
11
|
-
test:
|
12
|
-
<<: *default
|
13
|
-
|
14
|
-
production:
|
15
|
-
database: cache
|
16
|
-
<<: *default
|
@@ -1,116 +0,0 @@
|
|
1
|
-
# Name of your application. Used to uniquely configure containers.
|
2
|
-
service: itsi_sandbox_rails
|
3
|
-
|
4
|
-
# Name of the container image.
|
5
|
-
image: your-user/itsi_sandbox_rails
|
6
|
-
|
7
|
-
# Deploy to these servers.
|
8
|
-
servers:
|
9
|
-
web:
|
10
|
-
- 192.168.0.1
|
11
|
-
# job:
|
12
|
-
# hosts:
|
13
|
-
# - 192.168.0.1
|
14
|
-
# cmd: bin/jobs
|
15
|
-
|
16
|
-
# Enable SSL auto certification via Let's Encrypt and allow for multiple apps on a single web server.
|
17
|
-
# Remove this section when using multiple web servers and ensure you terminate SSL at your load balancer.
|
18
|
-
#
|
19
|
-
# Note: If using Cloudflare, set encryption mode in SSL/TLS setting to "Full" to enable CF-to-app encryption.
|
20
|
-
proxy:
|
21
|
-
ssl: true
|
22
|
-
host: app.example.com
|
23
|
-
|
24
|
-
# Credentials for your image host.
|
25
|
-
registry:
|
26
|
-
# Specify the registry server, if you're not using Docker Hub
|
27
|
-
# server: registry.digitalocean.com / ghcr.io / ...
|
28
|
-
username: your-user
|
29
|
-
|
30
|
-
# Always use an access token rather than real password when possible.
|
31
|
-
password:
|
32
|
-
- KAMAL_REGISTRY_PASSWORD
|
33
|
-
|
34
|
-
# Inject ENV variables into containers (secrets come from .kamal/secrets).
|
35
|
-
env:
|
36
|
-
secret:
|
37
|
-
- RAILS_MASTER_KEY
|
38
|
-
clear:
|
39
|
-
# Run the Solid Queue Supervisor inside the web server's Puma process to do jobs.
|
40
|
-
# When you start using multiple servers, you should split out job processing to a dedicated machine.
|
41
|
-
SOLID_QUEUE_IN_PUMA: true
|
42
|
-
|
43
|
-
# Set number of processes dedicated to Solid Queue (default: 1)
|
44
|
-
# JOB_CONCURRENCY: 3
|
45
|
-
|
46
|
-
# Set number of cores available to the application on each server (default: 1).
|
47
|
-
# WEB_CONCURRENCY: 2
|
48
|
-
|
49
|
-
# Match this to any external database server to configure Active Record correctly
|
50
|
-
# Use itsi_sandbox_rails-db for a db accessory server on same machine via local kamal docker network.
|
51
|
-
# DB_HOST: 192.168.0.2
|
52
|
-
|
53
|
-
# Log everything from Rails
|
54
|
-
# RAILS_LOG_LEVEL: debug
|
55
|
-
|
56
|
-
# Aliases are triggered with "bin/kamal <alias>". You can overwrite arguments on invocation:
|
57
|
-
# "bin/kamal logs -r job" will tail logs from the first server in the job section.
|
58
|
-
aliases:
|
59
|
-
console: app exec --interactive --reuse "bin/rails console"
|
60
|
-
shell: app exec --interactive --reuse "bash"
|
61
|
-
logs: app logs -f
|
62
|
-
dbc: app exec --interactive --reuse "bin/rails dbconsole"
|
63
|
-
|
64
|
-
|
65
|
-
# Use a persistent storage volume for sqlite database files and local Active Storage files.
|
66
|
-
# Recommended to change this to a mounted volume path that is backed up off server.
|
67
|
-
volumes:
|
68
|
-
- "itsi_sandbox_rails_storage:/rails/storage"
|
69
|
-
|
70
|
-
|
71
|
-
# Bridge fingerprinted assets, like JS and CSS, between versions to avoid
|
72
|
-
# hitting 404 on in-flight requests. Combines all files from new and old
|
73
|
-
# version inside the asset_path.
|
74
|
-
asset_path: /rails/public/assets
|
75
|
-
|
76
|
-
# Configure the image builder.
|
77
|
-
builder:
|
78
|
-
arch: amd64
|
79
|
-
|
80
|
-
# # Build image via remote server (useful for faster amd64 builds on arm64 computers)
|
81
|
-
# remote: ssh://docker@docker-builder-server
|
82
|
-
#
|
83
|
-
# # Pass arguments and secrets to the Docker build process
|
84
|
-
# args:
|
85
|
-
# RUBY_VERSION: ruby-3.4.2
|
86
|
-
# secrets:
|
87
|
-
# - GITHUB_TOKEN
|
88
|
-
# - RAILS_MASTER_KEY
|
89
|
-
|
90
|
-
# Use a different ssh user than root
|
91
|
-
# ssh:
|
92
|
-
# user: app
|
93
|
-
|
94
|
-
# Use accessory services (secrets come from .kamal/secrets).
|
95
|
-
# accessories:
|
96
|
-
# db:
|
97
|
-
# image: mysql:8.0
|
98
|
-
# host: 192.168.0.2
|
99
|
-
# # Change to 3306 to expose port to the world instead of just local network.
|
100
|
-
# port: "127.0.0.1:3306:3306"
|
101
|
-
# env:
|
102
|
-
# clear:
|
103
|
-
# MYSQL_ROOT_HOST: '%'
|
104
|
-
# secret:
|
105
|
-
# - MYSQL_ROOT_PASSWORD
|
106
|
-
# files:
|
107
|
-
# - config/mysql/production.cnf:/etc/mysql/my.cnf
|
108
|
-
# - db/production.sql:/docker-entrypoint-initdb.d/setup.sql
|
109
|
-
# directories:
|
110
|
-
# - data:/var/lib/mysql
|
111
|
-
# redis:
|
112
|
-
# image: redis:7.0
|
113
|
-
# host: 192.168.0.2
|
114
|
-
# port: 6379
|
115
|
-
# directories:
|
116
|
-
# - data:/data
|
@@ -1,18 +0,0 @@
|
|
1
|
-
default: &default
|
2
|
-
dispatchers:
|
3
|
-
- polling_interval: 1
|
4
|
-
batch_size: 500
|
5
|
-
workers:
|
6
|
-
- queues: "*"
|
7
|
-
threads: 3
|
8
|
-
processes: <%= ENV.fetch("JOB_CONCURRENCY", 1) %>
|
9
|
-
polling_interval: 0.1
|
10
|
-
|
11
|
-
development:
|
12
|
-
<<: *default
|
13
|
-
|
14
|
-
test:
|
15
|
-
<<: *default
|
16
|
-
|
17
|
-
production:
|
18
|
-
<<: *default
|
@@ -1,10 +0,0 @@
|
|
1
|
-
# production:
|
2
|
-
# periodic_cleanup:
|
3
|
-
# class: CleanSoftDeletedRecordsJob
|
4
|
-
# queue: background
|
5
|
-
# args: [ 1000, { batch_size: 500 } ]
|
6
|
-
# schedule: every hour
|
7
|
-
# periodic_command:
|
8
|
-
# command: "SoftDeletedRecord.due.delete_all"
|
9
|
-
# priority: 2
|
10
|
-
# schedule: at 5am every day
|
@@ -1,11 +0,0 @@
|
|
1
|
-
ActiveRecord::Schema[7.1].define(version: 1) do
|
2
|
-
create_table "solid_cable_messages", force: :cascade do |t|
|
3
|
-
t.binary "channel", limit: 1024, null: false
|
4
|
-
t.binary "payload", limit: 536870912, null: false
|
5
|
-
t.datetime "created_at", null: false
|
6
|
-
t.integer "channel_hash", limit: 8, null: false
|
7
|
-
t.index ["channel"], name: "index_solid_cable_messages_on_channel"
|
8
|
-
t.index ["channel_hash"], name: "index_solid_cable_messages_on_channel_hash"
|
9
|
-
t.index ["created_at"], name: "index_solid_cable_messages_on_created_at"
|
10
|
-
end
|
11
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
ActiveRecord::Schema[7.2].define(version: 1) do
|
4
|
-
create_table "solid_cache_entries", force: :cascade do |t|
|
5
|
-
t.binary "key", limit: 1024, null: false
|
6
|
-
t.binary "value", limit: 536870912, null: false
|
7
|
-
t.datetime "created_at", null: false
|
8
|
-
t.integer "key_hash", limit: 8, null: false
|
9
|
-
t.integer "byte_size", limit: 4, null: false
|
10
|
-
t.index ["byte_size"], name: "index_solid_cache_entries_on_byte_size"
|
11
|
-
t.index ["key_hash", "byte_size"], name: "index_solid_cache_entries_on_key_hash_and_byte_size"
|
12
|
-
t.index ["key_hash"], name: "index_solid_cache_entries_on_key_hash", unique: true
|
13
|
-
end
|
14
|
-
end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
ActiveRecord::Schema[7.1].define(version: 1) do
|
2
|
-
create_table "solid_queue_blocked_executions", force: :cascade do |t|
|
3
|
-
t.bigint "job_id", null: false
|
4
|
-
t.string "queue_name", null: false
|
5
|
-
t.integer "priority", default: 0, null: false
|
6
|
-
t.string "concurrency_key", null: false
|
7
|
-
t.datetime "expires_at", null: false
|
8
|
-
t.datetime "created_at", null: false
|
9
|
-
t.index [ "concurrency_key", "priority", "job_id" ], name: "index_solid_queue_blocked_executions_for_release"
|
10
|
-
t.index [ "expires_at", "concurrency_key" ], name: "index_solid_queue_blocked_executions_for_maintenance"
|
11
|
-
t.index [ "job_id" ], name: "index_solid_queue_blocked_executions_on_job_id", unique: true
|
12
|
-
end
|
13
|
-
|
14
|
-
create_table "solid_queue_claimed_executions", force: :cascade do |t|
|
15
|
-
t.bigint "job_id", null: false
|
16
|
-
t.bigint "process_id"
|
17
|
-
t.datetime "created_at", null: false
|
18
|
-
t.index [ "job_id" ], name: "index_solid_queue_claimed_executions_on_job_id", unique: true
|
19
|
-
t.index [ "process_id", "job_id" ], name: "index_solid_queue_claimed_executions_on_process_id_and_job_id"
|
20
|
-
end
|
21
|
-
|
22
|
-
create_table "solid_queue_failed_executions", force: :cascade do |t|
|
23
|
-
t.bigint "job_id", null: false
|
24
|
-
t.text "error"
|
25
|
-
t.datetime "created_at", null: false
|
26
|
-
t.index [ "job_id" ], name: "index_solid_queue_failed_executions_on_job_id", unique: true
|
27
|
-
end
|
28
|
-
|
29
|
-
create_table "solid_queue_jobs", force: :cascade do |t|
|
30
|
-
t.string "queue_name", null: false
|
31
|
-
t.string "class_name", null: false
|
32
|
-
t.text "arguments"
|
33
|
-
t.integer "priority", default: 0, null: false
|
34
|
-
t.string "active_job_id"
|
35
|
-
t.datetime "scheduled_at"
|
36
|
-
t.datetime "finished_at"
|
37
|
-
t.string "concurrency_key"
|
38
|
-
t.datetime "created_at", null: false
|
39
|
-
t.datetime "updated_at", null: false
|
40
|
-
t.index [ "active_job_id" ], name: "index_solid_queue_jobs_on_active_job_id"
|
41
|
-
t.index [ "class_name" ], name: "index_solid_queue_jobs_on_class_name"
|
42
|
-
t.index [ "finished_at" ], name: "index_solid_queue_jobs_on_finished_at"
|
43
|
-
t.index [ "queue_name", "finished_at" ], name: "index_solid_queue_jobs_for_filtering"
|
44
|
-
t.index [ "scheduled_at", "finished_at" ], name: "index_solid_queue_jobs_for_alerting"
|
45
|
-
end
|
46
|
-
|
47
|
-
create_table "solid_queue_pauses", force: :cascade do |t|
|
48
|
-
t.string "queue_name", null: false
|
49
|
-
t.datetime "created_at", null: false
|
50
|
-
t.index [ "queue_name" ], name: "index_solid_queue_pauses_on_queue_name", unique: true
|
51
|
-
end
|
52
|
-
|
53
|
-
create_table "solid_queue_processes", force: :cascade do |t|
|
54
|
-
t.string "kind", null: false
|
55
|
-
t.datetime "last_heartbeat_at", null: false
|
56
|
-
t.bigint "supervisor_id"
|
57
|
-
t.integer "pid", null: false
|
58
|
-
t.string "hostname"
|
59
|
-
t.text "metadata"
|
60
|
-
t.datetime "created_at", null: false
|
61
|
-
t.string "name", null: false
|
62
|
-
t.index [ "last_heartbeat_at" ], name: "index_solid_queue_processes_on_last_heartbeat_at"
|
63
|
-
t.index [ "name", "supervisor_id" ], name: "index_solid_queue_processes_on_name_and_supervisor_id", unique: true
|
64
|
-
t.index [ "supervisor_id" ], name: "index_solid_queue_processes_on_supervisor_id"
|
65
|
-
end
|
66
|
-
|
67
|
-
create_table "solid_queue_ready_executions", force: :cascade do |t|
|
68
|
-
t.bigint "job_id", null: false
|
69
|
-
t.string "queue_name", null: false
|
70
|
-
t.integer "priority", default: 0, null: false
|
71
|
-
t.datetime "created_at", null: false
|
72
|
-
t.index [ "job_id" ], name: "index_solid_queue_ready_executions_on_job_id", unique: true
|
73
|
-
t.index [ "priority", "job_id" ], name: "index_solid_queue_poll_all"
|
74
|
-
t.index [ "queue_name", "priority", "job_id" ], name: "index_solid_queue_poll_by_queue"
|
75
|
-
end
|
76
|
-
|
77
|
-
create_table "solid_queue_recurring_executions", force: :cascade do |t|
|
78
|
-
t.bigint "job_id", null: false
|
79
|
-
t.string "task_key", null: false
|
80
|
-
t.datetime "run_at", null: false
|
81
|
-
t.datetime "created_at", null: false
|
82
|
-
t.index [ "job_id" ], name: "index_solid_queue_recurring_executions_on_job_id", unique: true
|
83
|
-
t.index [ "task_key", "run_at" ], name: "index_solid_queue_recurring_executions_on_task_key_and_run_at", unique: true
|
84
|
-
end
|
85
|
-
|
86
|
-
create_table "solid_queue_recurring_tasks", force: :cascade do |t|
|
87
|
-
t.string "key", null: false
|
88
|
-
t.string "schedule", null: false
|
89
|
-
t.string "command", limit: 2048
|
90
|
-
t.string "class_name"
|
91
|
-
t.text "arguments"
|
92
|
-
t.string "queue_name"
|
93
|
-
t.integer "priority", default: 0
|
94
|
-
t.boolean "static", default: true, null: false
|
95
|
-
t.text "description"
|
96
|
-
t.datetime "created_at", null: false
|
97
|
-
t.datetime "updated_at", null: false
|
98
|
-
t.index [ "key" ], name: "index_solid_queue_recurring_tasks_on_key", unique: true
|
99
|
-
t.index [ "static" ], name: "index_solid_queue_recurring_tasks_on_static"
|
100
|
-
end
|
101
|
-
|
102
|
-
create_table "solid_queue_scheduled_executions", force: :cascade do |t|
|
103
|
-
t.bigint "job_id", null: false
|
104
|
-
t.string "queue_name", null: false
|
105
|
-
t.integer "priority", default: 0, null: false
|
106
|
-
t.datetime "scheduled_at", null: false
|
107
|
-
t.datetime "created_at", null: false
|
108
|
-
t.index [ "job_id" ], name: "index_solid_queue_scheduled_executions_on_job_id", unique: true
|
109
|
-
t.index [ "scheduled_at", "priority", "job_id" ], name: "index_solid_queue_dispatch_all"
|
110
|
-
end
|
111
|
-
|
112
|
-
create_table "solid_queue_semaphores", force: :cascade do |t|
|
113
|
-
t.string "key", null: false
|
114
|
-
t.integer "value", default: 1, null: false
|
115
|
-
t.datetime "expires_at", null: false
|
116
|
-
t.datetime "created_at", null: false
|
117
|
-
t.datetime "updated_at", null: false
|
118
|
-
t.index [ "expires_at" ], name: "index_solid_queue_semaphores_on_expires_at"
|
119
|
-
t.index [ "key", "value" ], name: "index_solid_queue_semaphores_on_key_and_value"
|
120
|
-
t.index [ "key" ], name: "index_solid_queue_semaphores_on_key", unique: true
|
121
|
-
end
|
122
|
-
|
123
|
-
add_foreign_key "solid_queue_blocked_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
124
|
-
add_foreign_key "solid_queue_claimed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
125
|
-
add_foreign_key "solid_queue_failed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
126
|
-
add_foreign_key "solid_queue_ready_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
127
|
-
add_foreign_key "solid_queue_recurring_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
128
|
-
add_foreign_key "solid_queue_scheduled_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
129
|
-
end
|
@@ -1,114 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
|
3
|
-
<html lang="en">
|
4
|
-
|
5
|
-
<head>
|
6
|
-
|
7
|
-
<title>The server cannot process the request due to a client error (400 Bad Request)</title>
|
8
|
-
|
9
|
-
<meta charset="utf-8">
|
10
|
-
<meta name="viewport" content="initial-scale=1, width=device-width">
|
11
|
-
<meta name="robots" content="noindex, nofollow">
|
12
|
-
|
13
|
-
<style>
|
14
|
-
|
15
|
-
*, *::before, *::after {
|
16
|
-
box-sizing: border-box;
|
17
|
-
}
|
18
|
-
|
19
|
-
* {
|
20
|
-
margin: 0;
|
21
|
-
}
|
22
|
-
|
23
|
-
html {
|
24
|
-
font-size: 16px;
|
25
|
-
}
|
26
|
-
|
27
|
-
body {
|
28
|
-
background: #FFF;
|
29
|
-
color: #261B23;
|
30
|
-
display: grid;
|
31
|
-
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Aptos, Roboto, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
32
|
-
font-size: clamp(1rem, 2.5vw, 2rem);
|
33
|
-
-webkit-font-smoothing: antialiased;
|
34
|
-
font-style: normal;
|
35
|
-
font-weight: 400;
|
36
|
-
letter-spacing: -0.0025em;
|
37
|
-
line-height: 1.4;
|
38
|
-
min-height: 100vh;
|
39
|
-
place-items: center;
|
40
|
-
text-rendering: optimizeLegibility;
|
41
|
-
-webkit-text-size-adjust: 100%;
|
42
|
-
}
|
43
|
-
|
44
|
-
a {
|
45
|
-
color: inherit;
|
46
|
-
font-weight: 700;
|
47
|
-
text-decoration: underline;
|
48
|
-
text-underline-offset: 0.0925em;
|
49
|
-
}
|
50
|
-
|
51
|
-
b, strong {
|
52
|
-
font-weight: 700;
|
53
|
-
}
|
54
|
-
|
55
|
-
i, em {
|
56
|
-
font-style: italic;
|
57
|
-
}
|
58
|
-
|
59
|
-
main {
|
60
|
-
display: grid;
|
61
|
-
gap: 1em;
|
62
|
-
padding: 2em;
|
63
|
-
place-items: center;
|
64
|
-
text-align: center;
|
65
|
-
}
|
66
|
-
|
67
|
-
main header {
|
68
|
-
width: min(100%, 12em);
|
69
|
-
}
|
70
|
-
|
71
|
-
main header svg {
|
72
|
-
height: auto;
|
73
|
-
max-width: 100%;
|
74
|
-
width: 100%;
|
75
|
-
}
|
76
|
-
|
77
|
-
main article {
|
78
|
-
width: min(100%, 30em);
|
79
|
-
}
|
80
|
-
|
81
|
-
main article p {
|
82
|
-
font-size: 75%;
|
83
|
-
}
|
84
|
-
|
85
|
-
main article br {
|
86
|
-
|
87
|
-
display: none;
|
88
|
-
|
89
|
-
@media(min-width: 48em) {
|
90
|
-
display: inline;
|
91
|
-
}
|
92
|
-
|
93
|
-
}
|
94
|
-
|
95
|
-
</style>
|
96
|
-
|
97
|
-
</head>
|
98
|
-
|
99
|
-
<body>
|
100
|
-
|
101
|
-
<!-- This file lives in public/400.html -->
|
102
|
-
|
103
|
-
<main>
|
104
|
-
<header>
|
105
|
-
<svg height="172" viewBox="0 0 480 172" width="480" xmlns="http://www.w3.org/2000/svg"><path d="m124.48 3.00509-45.6889 100.02991h26.2239v-28.1168h38.119v28.1168h21.628v35.145h-21.628v30.82h-37.308v-30.82h-72.1833v-31.901l50.2851-103.27391zm115.583 168.69891c-40.822 0-64.884-35.146-64.884-85.7015 0-50.5554 24.062-85.700907 64.884-85.700907 40.823 0 64.884 35.145507 64.884 85.700907 0 50.5555-24.061 85.7015-64.884 85.7015zm0-133.2831c-17.572 0-22.709 21.8984-22.709 47.5816 0 25.6835 5.137 47.5815 22.709 47.5815 17.303 0 22.71-21.898 22.71-47.5815 0-25.6832-5.407-47.5816-22.71-47.5816zm140.456 133.2831c-40.823 0-64.884-35.146-64.884-85.7015 0-50.5554 24.061-85.700907 64.884-85.700907 40.822 0 64.884 35.145507 64.884 85.700907 0 50.5555-24.062 85.7015-64.884 85.7015zm0-133.2831c-17.573 0-22.71 21.8984-22.71 47.5816 0 25.6835 5.137 47.5815 22.71 47.5815 17.302 0 22.709-21.898 22.709-47.5815 0-25.6832-5.407-47.5816-22.709-47.5816z" fill="#f0eff0"/><path d="m123.606 85.4445c3.212 1.0523 5.538 4.2089 5.538 8.0301 0 6.1472-4.209 9.5254-11.298 9.5254h-15.617v-34.0033h14.565c7.089 0 11.353 3.1566 11.353 9.2484 0 3.6551-2.049 6.3134-4.541 7.1994zm-12.904-2.9905h5.095c2.603 0 3.988-.9968 3.988-3.1013 0-2.1044-1.385-3.0459-3.988-3.0459h-5.095zm0 6.6456v6.5902h5.981c2.492 0 3.877-1.3291 3.877-3.2674 0-2.049-1.385-3.3228-3.877-3.3228zm43.786 13.9004h-8.362v-1.274c-.831.831-3.323 1.717-5.981 1.717-4.929 0-9.083-2.769-9.083-8.0301 0-4.818 4.154-7.9193 9.581-7.9193 2.049 0 4.486.6646 5.483 1.3845v-1.606c0-1.606-.942-2.9905-3.046-2.9905-1.606 0-2.548.7199-2.935 1.8275h-8.197c.72-4.8181 4.985-8.6393 11.409-8.6393 7.088 0 11.131 3.7659 11.131 10.2453zm-8.362-6.9779v-1.4399c-.554-1.0522-2.049-1.7167-3.655-1.7167-1.717 0-3.434.7199-3.434 2.3813 0 1.7168 1.717 2.4367 3.434 2.4367 1.606 0 3.101-.6645 3.655-1.6614zm27.996 6.9779v-1.994c-1.163 1.329-3.599 2.548-6.147 2.548-7.199 0-11.131-5.8151-11.131-13.0145s3.932-13.0143 11.131-13.0143c2.548 0 4.984 1.2184 6.147 2.5475v-13.0697h8.695v35.997zm0-9.1931v-6.5902c-.664-1.3291-2.159-2.326-3.821-2.326-2.99 0-4.763 2.4368-4.763 5.6488s1.773 5.5934 4.763 5.5934c1.717 0 3.157-.9415 3.821-2.326zm35.471-2.049h-3.101v11.2421h-8.806v-34.0033h15.285c7.31 0 12.35 4.1535 12.35 11.5744 0 5.1503-2.603 8.6947-6.757 10.2453l7.975 12.1836h-9.858zm-3.101-15.2849v8.1962h5.538c3.156 0 4.596-1.606 4.596-4.0981s-1.44-4.0981-4.596-4.0981zm36.957 17.8323h8.03c-.886 5.7597-5.206 9.2487-11.685 9.2487-7.643 0-12.682-5.2613-12.682-13.0145 0-7.6978 5.316-13.0143 12.515-13.0143 7.643 0 11.962 5.095 11.962 12.5159v2.1598h-16.115c.277 2.9905 1.827 4.5965 4.32 4.5965 1.772 0 3.156-.7753 3.655-2.4921zm-3.822-10.0237c-2.049 0-3.433 1.2737-3.987 3.5997h7.532c-.111-2.0491-1.385-3.5997-3.545-3.5997zm30.98 27.5234v-10.799c-1.163 1.329-3.6 2.548-6.147 2.548-7.2 0-11.132-5.9259-11.132-13.0145 0-7.144 3.932-13.0143 11.132-13.0143 2.547 0 4.984 1.2184 6.147 2.5475v-1.9937h8.695v33.726zm0-17.9981v-6.5902c-.665-1.3291-2.105-2.326-3.821-2.326-2.991 0-4.763 2.4368-4.763 5.6488s1.772 5.5934 4.763 5.5934c1.661 0 3.156-.9415 3.821-2.326zm36.789-15.7279v24.921h-8.695v-2.16c-1.329 1.551-3.821 2.714-6.646 2.714-5.482 0-8.75-3.5999-8.75-9.1379v-16.3371h8.64v14.288c0 2.1045.996 3.5997 3.212 3.5997 1.606 0 3.101-1.0522 3.544-2.769v-15.1187zm19.084 16.2263h8.03c-.886 5.7597-5.206 9.2487-11.685 9.2487-7.643 0-12.682-5.2613-12.682-13.0145 0-7.6978 5.316-13.0143 12.515-13.0143 7.643 0 11.963 5.095 11.963 12.5159v2.1598h-16.116c.277 2.9905 1.828 4.5965 4.32 4.5965 1.772 0 3.156-.7753 3.655-2.4921zm-3.822-10.0237c-2.049 0-3.433 1.2737-3.987 3.5997h7.532c-.111-2.0491-1.385-3.5997-3.545-3.5997zm13.428 11.0206h8.474c.387 1.3845 1.606 2.1598 3.156 2.1598 1.44 0 2.548-.5538 2.548-1.7168 0-.9414-.72-1.2737-1.939-1.5506l-4.873-.9969c-4.154-.886-6.867-2.8797-6.867-7.2547 0-5.3165 4.762-8.4178 10.633-8.4178 6.812 0 10.522 3.1567 11.297 8.0855h-8.03c-.277-1.0522-1.052-1.9937-3.046-1.9937-1.273 0-2.326.5538-2.326 1.6614 0 .7753.554 1.163 1.717 1.3845l4.929 1.163c4.541 1.0522 6.978 3.4335 6.978 7.4763 0 5.3168-4.818 8.2518-10.91 8.2518-6.369 0-10.965-2.88-11.741-8.2518zm27.538-.8861v-9.5807h-3.655v-6.7564h3.655v-6.8671h8.584v6.8671h5.205v6.7564h-5.205v8.307c0 1.9383.941 2.769 2.658 2.769.941 0 1.993-.2216 2.769-.5538v7.3654c-.997.443-2.88.775-4.818.775-5.871 0-9.193-2.769-9.193-9.0819z" fill="#d30001"/></svg>
|
106
|
-
</header>
|
107
|
-
<article>
|
108
|
-
<p><strong>The server cannot process the request due to a client error.</strong> Please check the request and try again. If you’re the application owner check the logs for more information.</p>
|
109
|
-
</article>
|
110
|
-
</main>
|
111
|
-
|
112
|
-
</body>
|
113
|
-
|
114
|
-
</html>
|
File without changes
|
File without changes
|