itsi 0.1.19 → 0.1.20
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/CHANGELOG.md +15 -0
- data/Cargo.lock +941 -241
- data/README.md +67 -55
- data/crates/itsi_server/Cargo.toml +3 -3
- data/crates/itsi_server/src/ruby_types/itsi_http_request.rs +2 -2
- data/crates/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +150 -19
- data/crates/itsi_server/src/ruby_types/itsi_server.rs +1 -0
- data/crates/itsi_server/src/server/binds/listener.rs +34 -29
- data/crates/itsi_server/src/server/binds/tls/locked_dir_cache.rs +2 -2
- data/crates/itsi_server/src/server/binds/tls.rs +1 -1
- data/crates/itsi_server/src/server/middleware_stack/middleware.rs +33 -28
- data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +56 -3
- data/crates/itsi_server/src/server/middleware_stack/middlewares/csp.rs +179 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/mod.rs +25 -2
- data/crates/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +3 -3
- data/crates/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +2 -1
- data/crates/itsi_server/src/server/middleware_stack/mod.rs +32 -34
- data/crates/itsi_server/src/server/serve_strategy/cluster_mode.rs +10 -4
- data/crates/itsi_server/src/server/serve_strategy/single_mode.rs +30 -7
- data/crates/itsi_server/src/server/thread_worker.rs +2 -2
- data/crates/itsi_server/src/services/static_file_server.rs +30 -28
- data/crates/itsi_tracing/src/lib.rs +39 -8
- data/docker/Dockerfile +12 -0
- data/docs/content/_index.md +18 -10
- data/docs/content/acknowledgements/_index.md +43 -0
- data/docs/content/configuration/_index.md +98 -0
- data/docs/content/contact/_index.md +7 -0
- data/docs/content/faqs/_index.md +27 -0
- data/docs/content/features/_index.md +285 -0
- data/docs/content/getting_started/_index.md +70 -0
- data/docs/content/getting_started/local_development.md +40 -0
- data/docs/content/getting_started/logging.md +16 -0
- data/docs/content/getting_started/running_itsi_in_production.md +24 -0
- data/docs/content/itsi-server-100.png +0 -0
- data/docs/content/itsi_scheduler/_index.md +105 -0
- data/docs/content/itsi_scheduler/itsi-scheduler-100.png +0 -0
- data/docs/content/ruby-lsp.png +0 -0
- data/docs/content/ruby.svg +948 -0
- data/docs/data/icons.yaml +949 -0
- data/docs/hugo.yaml +27 -28
- data/fairytale.txt +34 -0
- data/gems/scheduler/Cargo.lock +46 -46
- data/gems/scheduler/README.md +53 -24
- data/gems/scheduler/itsi-scheduler-100.png +0 -0
- data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
- data/gems/server/Cargo.lock +950 -239
- data/gems/server/README.md +2 -0
- data/gems/server/exe/itsi +5 -5
- data/gems/server/lib/itsi/server/config/config_helpers.rb +93 -0
- data/gems/server/lib/itsi/server/config/dsl.rb +81 -33
- data/gems/server/lib/itsi/server/config/known_paths/KitchensinkDirectories.txt +2346 -0
- data/gems/server/lib/itsi/server/config/known_paths/Randomfiles.txt +24 -0
- data/gems/server/lib/itsi/server/config/known_paths/UnixDotfiles.txt +52 -0
- data/gems/server/lib/itsi/server/config/known_paths/backdoors/ASP_CommonBackdoors.txt +29 -0
- data/gems/server/lib/itsi/server/config/known_paths/backdoors/bot_control_panels.txt +1668 -0
- data/gems/server/lib/itsi/server/config/known_paths/backdoors/shells.txt +1167 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST.txt +7 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST_Windows.txt +6 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_Microsoft.txt +79 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt +3948 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/README.md +5 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_plugins.txt +6320 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_themes.txt +828 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_plugins.txt +224 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_themes.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/php-nuke.txt +2142 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wordpress.txt +1566 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_common_theme_files.txt +46 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins.txt +13366 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_full.txt +68662 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_top225.txt +225 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.readme +12 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.txt +7336 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/3CharExtBrute.txt +17576 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/CommonWebExtensions.txt +80 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Backup.txt +14 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Common.txt +865 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Compressed.txt +186 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Mostcommon.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Skipfish.txt +93 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/WordlistSkipfish.txt +1918 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/copy_of.txt +8 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories-lowercase.txt +56180 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories.txt +62290 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions-lowercase.txt +2367 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions.txt +2450 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files-lowercase.txt +35323 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files.txt +37037 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words-lowercase.txt +107982 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words.txt +119600 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories-lowercase.txt +26593 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories.txt +30009 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions-lowercase.txt +1233 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions.txt +1289 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files-lowercase.txt +16243 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files.txt +17128 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words-lowercase.txt +56293 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words.txt +63087 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories-lowercase.txt +17776 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories.txt +20122 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions-lowercase.txt +914 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions.txt +963 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files-lowercase.txt +10848 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files.txt +11424 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words-lowercase.txt +38267 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words.txt +43003 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/spanish.txt +445 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/test_demo.txt +36 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/upload_variants.txt +44 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/Logins.txt +71 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/cfm.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/html.txt +295 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/jsp.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/php.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-asp.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-aspx.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/password-file-locations/Passwords.txt +47 -0
- data/gems/server/lib/itsi/server/config/known_paths/php/PHP.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths/php/PHP_CommonBackdoors.txt +5 -0
- data/gems/server/lib/itsi/server/config/known_paths/proxy-conf.txt +31 -0
- data/gems/server/lib/itsi/server/config/known_paths/tftp.txt +79 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ADFS.txt +86 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/AdobeXML.txt +16 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache.txt +101 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ApacheTomcat.txt +47 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache_Axis.txt +16 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ColdFusion.txt +111 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/FatwireCMS.txt +390 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Frontpage.txt +38 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HP_System_Mgmt_Homepage.txt +239 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HTTP_POST_Microsoft.txt +2 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Hyperion.txt +578 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/IIS.txt +187 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JBoss.txt +5 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JRun.txt +13 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JavaServlets_Common.txt +3 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Joomla_exploitable.txt +1937 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/LotusNotes.txt +206 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Netware.txt +18 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Oracle9i.txt +60 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/OracleAppServer.txt +192 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/README.md +6 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Ruby_Rails.txt +121 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SAP.txt +463 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Sharepoint.txt +1707 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SiteMinder.txt +19 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SunAppServerGlassfish.txt +51 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SuniPlanet.txt +35 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Vignette.txt +73 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Weblogic.txt +160 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Websphere.txt +366 -0
- data/gems/server/lib/itsi/server/config/known_paths/wellknown-rfc5785.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths.rb +17 -0
- data/gems/server/lib/itsi/server/config/middleware/_index.md +54 -0
- data/gems/server/lib/itsi/server/config/middleware/log_requests.md +63 -0
- data/gems/server/lib/itsi/server/config/middleware/log_requests.rb +33 -0
- data/gems/server/lib/itsi/server/config/middleware.rb +9 -0
- data/gems/server/lib/itsi/server/config/option.rb +9 -0
- data/gems/server/lib/itsi/server/config/options/_index.md +36 -0
- data/gems/server/lib/itsi/server/config/options/fiber_scheduler.md +35 -0
- data/gems/server/lib/itsi/server/config/options/fiber_scheduler.rb +18 -0
- data/gems/server/lib/itsi/server/config/options/threads.md +39 -0
- data/gems/server/lib/itsi/server/config/options/threads.rb +17 -0
- data/gems/server/lib/itsi/server/config/options/workers.md +43 -0
- data/gems/server/lib/itsi/server/config/options/workers.rb +17 -0
- data/gems/server/lib/itsi/server/config/typed_struct.rb +203 -0
- data/gems/server/lib/itsi/server/config.rb +124 -30
- data/gems/server/lib/itsi/server/signal_trap.rb +5 -1
- data/gems/server/lib/itsi/server/typed_handlers/source_parser.rb +1 -1
- data/gems/server/lib/itsi/server/version.rb +1 -1
- data/gems/server/lib/itsi/server.rb +27 -6
- data/gems/server/lib/ruby_lsp/itsi/addon.rb +64 -48
- data/gems/server/test/helpers/test_helper.rb +64 -5
- data/gems/server/test/middleware/test_log_requests.rb +17 -0
- data/gems/server/test/options/test_threads.rb +15 -0
- data/gems/server/test/options/test_workers.rb +18 -0
- data/gems/server/test/test_itsi_server.rb +81 -94
- data/itsi-scheduler-100.png +0 -0
- data/itsi-server-100.png +0 -0
- data/lib/itsi/version.rb +1 -1
- data/tasks.txt +36 -28
- metadata +147 -215
- data/crates/_index.md +0 -0
- data/crates/itsi_server/src/ruby_types/README.md +0 -21
- data/crates/itsi_server/test.md +0 -14
- data/docs/Itsi.rb +0 -17
- data/docs/content/about.md +0 -6
- data/docs/content/docs/_index.md +0 -18
- data/docs/content/docs/first-page.md +0 -9
- data/docs/content/docs/folder/_index.md +0 -10
- data/docs/content/docs/folder/leaf.md +0 -7
- data/foo/Itsi.rb +0 -122
- data/gems/_index.md +0 -18
- data/gems/scheduler/CHANGELOG.md +0 -5
- data/gems/scheduler/CODE_OF_CONDUCT.md +0 -139
- data/gems/scheduler/LICENSE.txt +0 -21
- data/gems/scheduler/_index.md +0 -7
- data/gems/server/CHANGELOG.md +0 -10
- data/gems/server/CODE_OF_CONDUCT.md +0 -139
- data/gems/server/LICENSE.txt +0 -21
- data/gems/server/_index.md +0 -6
- data/sandbox/README.md +0 -5
- data/sandbox/deploy/main.tf +0 -238
- data/sandbox/deploy/outputs.tf +0 -4
- data/sandbox/deploy/vars.tf +0 -11
- data/sandbox/falcon_benchmark/Gemfile +0 -10
- data/sandbox/falcon_benchmark/Gemfile.lock +0 -140
- data/sandbox/falcon_benchmark/config.ru +0 -54
- data/sandbox/itsi_file/Gemfile +0 -13
- data/sandbox/itsi_file/Gemfile.lock +0 -111
- data/sandbox/itsi_file/Itsi.rb +0 -474
- data/sandbox/itsi_file/call.json +0 -1
- data/sandbox/itsi_file/echo_client/Gemfile +0 -10
- data/sandbox/itsi_file/echo_client/Gemfile.lock +0 -27
- data/sandbox/itsi_file/echo_client/README.md +0 -95
- data/sandbox/itsi_file/echo_client/echo_client.rb +0 -164
- data/sandbox/itsi_file/echo_client/gen_proto.sh +0 -17
- data/sandbox/itsi_file/echo_client/lib/echo_pb.rb +0 -16
- data/sandbox/itsi_file/echo_client/lib/echo_services_pb.rb +0 -29
- data/sandbox/itsi_file/echo_client/run_client.rb +0 -64
- data/sandbox/itsi_file/echo_client/test_compressions.sh +0 -20
- data/sandbox/itsi_file/echo_service_nonitsi/Gemfile +0 -10
- data/sandbox/itsi_file/echo_service_nonitsi/Gemfile.lock +0 -79
- data/sandbox/itsi_file/echo_service_nonitsi/echo.proto +0 -26
- data/sandbox/itsi_file/echo_service_nonitsi/echo_pb.rb +0 -16
- data/sandbox/itsi_file/echo_service_nonitsi/echo_services_pb.rb +0 -29
- data/sandbox/itsi_file/echo_service_nonitsi/server.rb +0 -52
- data/sandbox/itsi_file/error.html +0 -2
- data/sandbox/itsi_file/organisations_controller.rb +0 -20
- data/sandbox/itsi_file/public/assets/image.png +0 -0
- data/sandbox/itsi_sandbox_async/Gemfile +0 -10
- data/sandbox/itsi_sandbox_async/Gemfile.lock +0 -69
- data/sandbox/itsi_sandbox_async/config.ru +0 -9
- data/sandbox/itsi_sandbox_hanami/.env +0 -2
- data/sandbox/itsi_sandbox_hanami/.gitignore +0 -6
- data/sandbox/itsi_sandbox_hanami/.rspec +0 -1
- data/sandbox/itsi_sandbox_hanami/Gemfile +0 -49
- data/sandbox/itsi_sandbox_hanami/Gemfile.lock +0 -440
- data/sandbox/itsi_sandbox_hanami/Guardfile +0 -9
- data/sandbox/itsi_sandbox_hanami/Procfile.dev +0 -2
- data/sandbox/itsi_sandbox_hanami/README.md +0 -1
- data/sandbox/itsi_sandbox_hanami/Rakefile +0 -3
- data/sandbox/itsi_sandbox_hanami/app/action.rb +0 -12
- data/sandbox/itsi_sandbox_hanami/app/actions/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/assets/css/app.css +0 -5
- data/sandbox/itsi_sandbox_hanami/app/assets/images/favicon.ico +0 -0
- data/sandbox/itsi_sandbox_hanami/app/assets/js/app.js +0 -1
- data/sandbox/itsi_sandbox_hanami/app/db/relation.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/app/db/repo.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/app/db/struct.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/app/operation.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/app/relations/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/repos/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/structs/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/templates/layouts/app.html.erb +0 -14
- data/sandbox/itsi_sandbox_hanami/app/view.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/app/views/helpers.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/bin/dev +0 -8
- data/sandbox/itsi_sandbox_hanami/config/app.rb +0 -8
- data/sandbox/itsi_sandbox_hanami/config/assets.js +0 -16
- data/sandbox/itsi_sandbox_hanami/config/db/migrate/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/config/db/seeds.rb +0 -15
- data/sandbox/itsi_sandbox_hanami/config/puma.rb +0 -47
- data/sandbox/itsi_sandbox_hanami/config/routes.rb +0 -7
- data/sandbox/itsi_sandbox_hanami/config/settings.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/config.ru +0 -5
- data/sandbox/itsi_sandbox_hanami/db/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/lib/itsi_hanami/types.rb +0 -11
- data/sandbox/itsi_sandbox_hanami/lib/tasks/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/package-lock.json +0 -946
- data/sandbox/itsi_sandbox_hanami/package.json +0 -8
- data/sandbox/itsi_sandbox_hanami/spec/requests/root_spec.rb +0 -11
- data/sandbox/itsi_sandbox_hanami/spec/spec_helper.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/spec/support/db/cleaning.rb +0 -42
- data/sandbox/itsi_sandbox_hanami/spec/support/db.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/spec/support/features.rb +0 -5
- data/sandbox/itsi_sandbox_hanami/spec/support/operations.rb +0 -8
- data/sandbox/itsi_sandbox_hanami/spec/support/requests.rb +0 -13
- data/sandbox/itsi_sandbox_hanami/spec/support/rspec.rb +0 -61
- data/sandbox/itsi_sandbox_rack/Gemfile +0 -17
- data/sandbox/itsi_sandbox_rack/Gemfile.lock +0 -153
- data/sandbox/itsi_sandbox_rack/config.ru +0 -5
- data/sandbox/itsi_sandbox_rack_lint/Gemfile +0 -7
- data/sandbox/itsi_sandbox_rack_lint/Gemfile.lock +0 -27
- data/sandbox/itsi_sandbox_rack_lint/config.ru +0 -3
- data/sandbox/itsi_sandbox_rails/.dockerignore +0 -48
- data/sandbox/itsi_sandbox_rails/.gitattributes +0 -9
- data/sandbox/itsi_sandbox_rails/.github/dependabot.yml +0 -12
- data/sandbox/itsi_sandbox_rails/.github/workflows/ci.yml +0 -90
- data/sandbox/itsi_sandbox_rails/.gitignore +0 -35
- data/sandbox/itsi_sandbox_rails/.rubocop.yml +0 -8
- data/sandbox/itsi_sandbox_rails/.ruby-version +0 -1
- data/sandbox/itsi_sandbox_rails/Dockerfile +0 -69
- data/sandbox/itsi_sandbox_rails/Gemfile +0 -66
- data/sandbox/itsi_sandbox_rails/Gemfile.lock +0 -429
- data/sandbox/itsi_sandbox_rails/README.md +0 -24
- data/sandbox/itsi_sandbox_rails/Rakefile +0 -6
- data/sandbox/itsi_sandbox_rails/app/assets/config/manifest.js +0 -4
- data/sandbox/itsi_sandbox_rails/app/assets/images/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/app/assets/stylesheets/application.css +0 -15
- data/sandbox/itsi_sandbox_rails/app/channels/application_cable/channel.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/channels/application_cable/connection.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/controllers/application_controller.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/controllers/concerns/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/app/controllers/home_controller.rb +0 -66
- data/sandbox/itsi_sandbox_rails/app/controllers/live_controller.rb +0 -40
- data/sandbox/itsi_sandbox_rails/app/controllers/uploads_controller.rb +0 -29
- data/sandbox/itsi_sandbox_rails/app/helpers/application_helper.rb +0 -2
- data/sandbox/itsi_sandbox_rails/app/javascript/application.js +0 -3
- data/sandbox/itsi_sandbox_rails/app/javascript/controllers/application.js +0 -9
- data/sandbox/itsi_sandbox_rails/app/javascript/controllers/hello_controller.js +0 -7
- data/sandbox/itsi_sandbox_rails/app/javascript/controllers/index.js +0 -4
- data/sandbox/itsi_sandbox_rails/app/jobs/application_job.rb +0 -7
- data/sandbox/itsi_sandbox_rails/app/mailers/application_mailer.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/models/application_record.rb +0 -3
- data/sandbox/itsi_sandbox_rails/app/models/concerns/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/app/models/post.rb +0 -2
- data/sandbox/itsi_sandbox_rails/app/views/layouts/application.html.erb +0 -23
- data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.html.erb +0 -13
- data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.text.erb +0 -1
- data/sandbox/itsi_sandbox_rails/app/views/pwa/manifest.json.erb +0 -22
- data/sandbox/itsi_sandbox_rails/app/views/pwa/service-worker.js +0 -26
- data/sandbox/itsi_sandbox_rails/bin/brakeman +0 -7
- data/sandbox/itsi_sandbox_rails/bin/bundle +0 -109
- data/sandbox/itsi_sandbox_rails/bin/docker-entrypoint +0 -13
- data/sandbox/itsi_sandbox_rails/bin/importmap +0 -4
- data/sandbox/itsi_sandbox_rails/bin/rails +0 -4
- data/sandbox/itsi_sandbox_rails/bin/rake +0 -4
- data/sandbox/itsi_sandbox_rails/bin/rubocop +0 -8
- data/sandbox/itsi_sandbox_rails/bin/setup +0 -37
- data/sandbox/itsi_sandbox_rails/config/application.rb +0 -27
- data/sandbox/itsi_sandbox_rails/config/boot.rb +0 -4
- data/sandbox/itsi_sandbox_rails/config/cable.yml +0 -10
- data/sandbox/itsi_sandbox_rails/config/credentials.yml.enc +0 -1
- data/sandbox/itsi_sandbox_rails/config/database.yml +0 -30
- data/sandbox/itsi_sandbox_rails/config/environment.rb +0 -5
- data/sandbox/itsi_sandbox_rails/config/environments/development.rb +0 -82
- data/sandbox/itsi_sandbox_rails/config/environments/production.rb +0 -106
- data/sandbox/itsi_sandbox_rails/config/environments/test.rb +0 -67
- data/sandbox/itsi_sandbox_rails/config/importmap.rb +0 -7
- data/sandbox/itsi_sandbox_rails/config/initializers/assets.rb +0 -12
- data/sandbox/itsi_sandbox_rails/config/initializers/content_security_policy.rb +0 -25
- data/sandbox/itsi_sandbox_rails/config/initializers/filter_parameter_logging.rb +0 -8
- data/sandbox/itsi_sandbox_rails/config/initializers/inflections.rb +0 -16
- data/sandbox/itsi_sandbox_rails/config/initializers/permissions_policy.rb +0 -13
- data/sandbox/itsi_sandbox_rails/config/locales/en.yml +0 -31
- data/sandbox/itsi_sandbox_rails/config/puma.rb +0 -34
- data/sandbox/itsi_sandbox_rails/config/routes.rb +0 -23
- data/sandbox/itsi_sandbox_rails/config/storage.yml +0 -34
- data/sandbox/itsi_sandbox_rails/config.ru +0 -6
- data/sandbox/itsi_sandbox_rails/db/migrate/20250301041554_create_posts.rb +0 -10
- data/sandbox/itsi_sandbox_rails/db/schema.rb +0 -23
- data/sandbox/itsi_sandbox_rails/db/seeds.rb +0 -9
- data/sandbox/itsi_sandbox_rails/lib/assets/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/lib/tasks/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/log/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/public/404.html +0 -67
- data/sandbox/itsi_sandbox_rails/public/406-unsupported-browser.html +0 -66
- data/sandbox/itsi_sandbox_rails/public/422.html +0 -67
- data/sandbox/itsi_sandbox_rails/public/500.html +0 -66
- data/sandbox/itsi_sandbox_rails/public/icon.png +0 -0
- data/sandbox/itsi_sandbox_rails/public/icon.svg +0 -3
- data/sandbox/itsi_sandbox_rails/public/robots.txt +0 -1
- data/sandbox/itsi_sandbox_rails/storage/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/application_system_test_case.rb +0 -5
- data/sandbox/itsi_sandbox_rails/test/channels/application_cable/connection_test.rb +0 -13
- data/sandbox/itsi_sandbox_rails/test/controllers/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/fixtures/files/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/helpers/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/integration/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/mailers/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/models/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/system/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/test_helper.rb +0 -15
- data/sandbox/itsi_sandbox_rails/tmp/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/tmp/pids/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/tmp/storage/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/vendor/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/vendor/javascript/.keep +0 -0
- data/sandbox/itsi_sandbox_roda/Gemfile +0 -5
- data/sandbox/itsi_sandbox_roda/Gemfile.lock +0 -37
- data/sandbox/itsi_sandbox_roda/config.ru +0 -39
- data/sandbox/itsi_sinatra/Gemfile +0 -9
- data/sandbox/itsi_sinatra/Gemfile.lock +0 -81
- data/sandbox/itsi_sinatra/app.rb +0 -8
- data/sandbox/pebble/docker-compose.yml +0 -11
- data/sandbox/static_files/.env +0 -1
- data/sandbox/static_files/404.html +0 -25
- data/sandbox/static_files/_DSC0102.NEF.jpg +0 -0
- data/sandbox/static_files/about.html +0 -68
- data/sandbox/static_files/tiny.html +0 -1
- data/sandbox/static_files/writebook.zip +0 -0
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "database_cleaner/sequel"
|
4
|
-
|
5
|
-
# Clean the databases between tests tagged as `:db`
|
6
|
-
RSpec.configure do |config|
|
7
|
-
# Returns all the configured databases across the app and its slices.
|
8
|
-
#
|
9
|
-
# Used in the before/after hooks below to ensure each database is cleaned between examples.
|
10
|
-
#
|
11
|
-
# Modify this proc (or any code below) if you only need specific databases cleaned.
|
12
|
-
all_databases = -> {
|
13
|
-
slices = [Hanami.app] + Hanami.app.slices.with_nested
|
14
|
-
|
15
|
-
slices.each_with_object([]) { |slice, dbs|
|
16
|
-
next unless slice.key?("db.rom")
|
17
|
-
|
18
|
-
dbs.concat slice["db.rom"].gateways.values.map(&:connection)
|
19
|
-
}.uniq
|
20
|
-
}
|
21
|
-
|
22
|
-
config.before :suite do
|
23
|
-
all_databases.call.each do |db|
|
24
|
-
DatabaseCleaner[:sequel, db: db].clean_with :truncation, except: ["schema_migrations"]
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
config.before :each, :db do |example|
|
29
|
-
strategy = example.metadata[:js] ? :truncation : :transaction
|
30
|
-
|
31
|
-
all_databases.call.each do |db|
|
32
|
-
DatabaseCleaner[:sequel, db: db].strategy = strategy
|
33
|
-
DatabaseCleaner[:sequel, db: db].start
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
config.after :each, :db do
|
38
|
-
all_databases.call.each do |db|
|
39
|
-
DatabaseCleaner[:sequel, db: db].clean
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Tag feature spec examples as `:db`
|
4
|
-
#
|
5
|
-
# See support/db/cleaning.rb for how the database is cleaned around these `:db` examples.
|
6
|
-
RSpec.configure do |config|
|
7
|
-
config.define_derived_metadata(type: :feature) do |metadata|
|
8
|
-
metadata[:db] = true
|
9
|
-
end
|
10
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "rack/test"
|
4
|
-
|
5
|
-
RSpec.shared_context "Rack::Test" do
|
6
|
-
# Define the app for Rack::Test requests
|
7
|
-
let(:app) { Hanami.app }
|
8
|
-
end
|
9
|
-
|
10
|
-
RSpec.configure do |config|
|
11
|
-
config.include Rack::Test::Methods, type: :request
|
12
|
-
config.include_context "Rack::Test", type: :request
|
13
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.configure do |config|
|
4
|
-
# Use the recommended non-monkey patched syntax.
|
5
|
-
config.disable_monkey_patching!
|
6
|
-
|
7
|
-
# Use and configure rspec-expectations.
|
8
|
-
config.expect_with :rspec do |expectations|
|
9
|
-
# This option will default to `true` in RSpec 4.
|
10
|
-
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
11
|
-
end
|
12
|
-
|
13
|
-
# Use and configure rspec-mocks.
|
14
|
-
config.mock_with :rspec do |mocks|
|
15
|
-
# Prevents you from mocking or stubbing a method that does not exist on a
|
16
|
-
# real object.
|
17
|
-
mocks.verify_partial_doubles = true
|
18
|
-
end
|
19
|
-
|
20
|
-
# This option will default to `:apply_to_host_groups` in RSpec 4.
|
21
|
-
config.shared_context_metadata_behavior = :apply_to_host_groups
|
22
|
-
|
23
|
-
# Limit a spec run to individual examples or groups you care about by tagging
|
24
|
-
# them with `:focus` metadata. When nothing is tagged with `:focus`, all
|
25
|
-
# examples get run.
|
26
|
-
#
|
27
|
-
# RSpec also provides aliases for `it`, `describe`, and `context` that include
|
28
|
-
# `:focus` metadata: `fit`, `fdescribe` and `fcontext`, respectively.
|
29
|
-
config.filter_run_when_matching :focus
|
30
|
-
|
31
|
-
# Allow RSpec to persist some state between runs in order to support the
|
32
|
-
# `--only-failures` and `--next-failure` CLI options. We recommend you
|
33
|
-
# configure your source control system to ignore this file.
|
34
|
-
config.example_status_persistence_file_path = "spec/examples.txt"
|
35
|
-
|
36
|
-
# Uncomment this to enable warnings. This is recommended, but in some cases
|
37
|
-
# may be too noisy due to issues in dependencies.
|
38
|
-
# config.warnings = true
|
39
|
-
|
40
|
-
# Show more verbose output when running an individual spec file.
|
41
|
-
if config.files_to_run.one?
|
42
|
-
config.default_formatter = "doc"
|
43
|
-
end
|
44
|
-
|
45
|
-
# Print the 10 slowest examples and example groups at the end of the spec run,
|
46
|
-
# to help surface which specs are running particularly slow.
|
47
|
-
config.profile_examples = 10
|
48
|
-
|
49
|
-
# Run specs in random order to surface order dependencies. If you find an
|
50
|
-
# order dependency and want to debug it, you can fix the order by providing
|
51
|
-
# the seed, which is printed after each run:
|
52
|
-
#
|
53
|
-
# --seed 1234
|
54
|
-
config.order = :random
|
55
|
-
|
56
|
-
# Seed global randomization in this process using the `--seed` CLI option.
|
57
|
-
# This allows you to use `--seed` to deterministically reproduce test failures
|
58
|
-
# related to randomization by passing the same `--seed` value as the one that
|
59
|
-
# triggered the failure.
|
60
|
-
Kernel.srand config.seed
|
61
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
# gem "rails"
|
6
|
-
|
7
|
-
gem "itsi-server", path: "../../gems/server"
|
8
|
-
gem "itsi-scheduler", path: "../../gems/scheduler"
|
9
|
-
|
10
|
-
gem 'unicorn'
|
11
|
-
gem 'pitchfork'
|
12
|
-
gem 'async'
|
13
|
-
gem 'falcon'
|
14
|
-
gem 'agoo'
|
15
|
-
gem 'iodine'
|
16
|
-
gem 'debug'
|
17
|
-
gem 'pry-byebug'
|
@@ -1,153 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../../gems/scheduler
|
3
|
-
specs:
|
4
|
-
itsi-scheduler (0.1.14)
|
5
|
-
rb_sys (~> 0.9.91)
|
6
|
-
|
7
|
-
PATH
|
8
|
-
remote: ../../gems/server
|
9
|
-
specs:
|
10
|
-
itsi-server (0.1.14)
|
11
|
-
rack (>= 1.6)
|
12
|
-
rb_sys (~> 0.9.91)
|
13
|
-
|
14
|
-
GEM
|
15
|
-
remote: https://rubygems.org/
|
16
|
-
specs:
|
17
|
-
agoo (2.15.13)
|
18
|
-
async (2.23.0)
|
19
|
-
console (~> 1.29)
|
20
|
-
fiber-annotation
|
21
|
-
io-event (~> 1.9)
|
22
|
-
metrics (~> 0.12)
|
23
|
-
traces (~> 0.15)
|
24
|
-
async-container (0.24.0)
|
25
|
-
async (~> 2.22)
|
26
|
-
async-container-supervisor (0.5.1)
|
27
|
-
async-container (~> 0.22)
|
28
|
-
async-service
|
29
|
-
io-endpoint
|
30
|
-
memory-leak (~> 0.5)
|
31
|
-
async-http (0.87.0)
|
32
|
-
async (>= 2.10.2)
|
33
|
-
async-pool (~> 0.9)
|
34
|
-
io-endpoint (~> 0.14)
|
35
|
-
io-stream (~> 0.6)
|
36
|
-
metrics (~> 0.12)
|
37
|
-
protocol-http (~> 0.49)
|
38
|
-
protocol-http1 (~> 0.30)
|
39
|
-
protocol-http2 (~> 0.22)
|
40
|
-
traces (~> 0.10)
|
41
|
-
async-http-cache (0.4.5)
|
42
|
-
async-http (~> 0.56)
|
43
|
-
async-pool (0.10.3)
|
44
|
-
async (>= 1.25)
|
45
|
-
async-service (0.13.0)
|
46
|
-
async
|
47
|
-
async-container (~> 0.16)
|
48
|
-
byebug (11.1.3)
|
49
|
-
coderay (1.1.3)
|
50
|
-
console (1.30.0)
|
51
|
-
fiber-annotation
|
52
|
-
fiber-local (~> 1.1)
|
53
|
-
json
|
54
|
-
date (3.4.1)
|
55
|
-
debug (1.10.0)
|
56
|
-
irb (~> 1.10)
|
57
|
-
reline (>= 0.3.8)
|
58
|
-
falcon (0.51.1)
|
59
|
-
async
|
60
|
-
async-container (~> 0.20)
|
61
|
-
async-container-supervisor (~> 0.5.0)
|
62
|
-
async-http (~> 0.75)
|
63
|
-
async-http-cache (~> 0.4)
|
64
|
-
async-service (~> 0.10)
|
65
|
-
bundler
|
66
|
-
localhost (~> 1.1)
|
67
|
-
openssl (~> 3.0)
|
68
|
-
protocol-http (~> 0.31)
|
69
|
-
protocol-rack (~> 0.7)
|
70
|
-
samovar (~> 2.3)
|
71
|
-
fiber-annotation (0.2.0)
|
72
|
-
fiber-local (1.1.0)
|
73
|
-
fiber-storage
|
74
|
-
fiber-storage (1.0.0)
|
75
|
-
io-console (0.8.0)
|
76
|
-
io-endpoint (0.15.2)
|
77
|
-
io-event (1.9.0)
|
78
|
-
io-stream (0.6.1)
|
79
|
-
iodine (0.7.58)
|
80
|
-
irb (1.15.1)
|
81
|
-
pp (>= 0.6.0)
|
82
|
-
rdoc (>= 4.0.0)
|
83
|
-
reline (>= 0.4.2)
|
84
|
-
json (2.10.1)
|
85
|
-
kgio (2.11.4)
|
86
|
-
localhost (1.3.1)
|
87
|
-
logger (1.6.6)
|
88
|
-
mapping (1.1.1)
|
89
|
-
memory-leak (0.5.2)
|
90
|
-
method_source (1.1.0)
|
91
|
-
metrics (0.12.2)
|
92
|
-
openssl (3.3.0)
|
93
|
-
pitchfork (0.16.0)
|
94
|
-
logger
|
95
|
-
rack (>= 2.0)
|
96
|
-
pp (0.6.2)
|
97
|
-
prettyprint
|
98
|
-
prettyprint (0.2.0)
|
99
|
-
protocol-hpack (1.5.1)
|
100
|
-
protocol-http (0.49.0)
|
101
|
-
protocol-http1 (0.30.0)
|
102
|
-
protocol-http (~> 0.22)
|
103
|
-
protocol-http2 (0.22.1)
|
104
|
-
protocol-hpack (~> 1.4)
|
105
|
-
protocol-http (~> 0.47)
|
106
|
-
protocol-rack (0.11.2)
|
107
|
-
protocol-http (~> 0.43)
|
108
|
-
rack (>= 1.0)
|
109
|
-
pry (0.14.2)
|
110
|
-
coderay (~> 1.1)
|
111
|
-
method_source (~> 1.0)
|
112
|
-
pry-byebug (3.10.1)
|
113
|
-
byebug (~> 11.0)
|
114
|
-
pry (>= 0.13, < 0.15)
|
115
|
-
psych (5.2.3)
|
116
|
-
date
|
117
|
-
stringio
|
118
|
-
rack (2.2.12)
|
119
|
-
raindrops (0.20.1)
|
120
|
-
rake-compiler-dock (1.9.1)
|
121
|
-
rb_sys (0.9.111)
|
122
|
-
rake-compiler-dock (= 1.9.1)
|
123
|
-
rdoc (6.12.0)
|
124
|
-
psych (>= 4.0.0)
|
125
|
-
reline (0.6.0)
|
126
|
-
io-console (~> 0.5)
|
127
|
-
samovar (2.3.0)
|
128
|
-
console (~> 1.0)
|
129
|
-
mapping (~> 1.0)
|
130
|
-
stringio (3.1.5)
|
131
|
-
traces (0.15.2)
|
132
|
-
unicorn (6.1.0)
|
133
|
-
kgio (~> 2.6)
|
134
|
-
raindrops (~> 0.7)
|
135
|
-
|
136
|
-
PLATFORMS
|
137
|
-
arm64-darwin-23
|
138
|
-
ruby
|
139
|
-
|
140
|
-
DEPENDENCIES
|
141
|
-
agoo
|
142
|
-
async
|
143
|
-
debug
|
144
|
-
falcon
|
145
|
-
iodine
|
146
|
-
itsi-scheduler!
|
147
|
-
itsi-server!
|
148
|
-
pitchfork
|
149
|
-
pry-byebug
|
150
|
-
unicorn
|
151
|
-
|
152
|
-
BUNDLED WITH
|
153
|
-
2.6.3
|
@@ -1,27 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../../gems/server
|
3
|
-
specs:
|
4
|
-
itsi-server (0.1.7)
|
5
|
-
rack (>= 1.6)
|
6
|
-
rb_sys (~> 0.9.91)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
rack (2.2.12)
|
12
|
-
rake-compiler-dock (1.9.1)
|
13
|
-
rb_sys (0.9.111)
|
14
|
-
rake-compiler-dock (= 1.9.1)
|
15
|
-
|
16
|
-
PLATFORMS
|
17
|
-
aarch64-linux
|
18
|
-
arm64-darwin
|
19
|
-
x86_64-darwin
|
20
|
-
x86_64-linux
|
21
|
-
x86_64-linux-musl
|
22
|
-
|
23
|
-
DEPENDENCIES
|
24
|
-
itsi-server!
|
25
|
-
|
26
|
-
BUNDLED WITH
|
27
|
-
2.6.3
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.
|
2
|
-
|
3
|
-
# Ignore git directory.
|
4
|
-
/.git/
|
5
|
-
/.gitignore
|
6
|
-
|
7
|
-
# Ignore bundler config.
|
8
|
-
/.bundle
|
9
|
-
|
10
|
-
# Ignore all environment files (except templates).
|
11
|
-
/.env*
|
12
|
-
!/.env*.erb
|
13
|
-
|
14
|
-
# Ignore all default key files.
|
15
|
-
/config/master.key
|
16
|
-
/config/credentials/*.key
|
17
|
-
|
18
|
-
# Ignore all logfiles and tempfiles.
|
19
|
-
/log/*
|
20
|
-
/tmp/*
|
21
|
-
!/log/.keep
|
22
|
-
!/tmp/.keep
|
23
|
-
|
24
|
-
# Ignore pidfiles, but keep the directory.
|
25
|
-
/tmp/pids/*
|
26
|
-
!/tmp/pids/.keep
|
27
|
-
|
28
|
-
# Ignore storage (uploaded files in development and any SQLite databases).
|
29
|
-
/storage/*
|
30
|
-
!/storage/.keep
|
31
|
-
/tmp/storage/*
|
32
|
-
!/tmp/storage/.keep
|
33
|
-
|
34
|
-
# Ignore assets.
|
35
|
-
/node_modules/
|
36
|
-
/app/assets/builds/*
|
37
|
-
!/app/assets/builds/.keep
|
38
|
-
/public/assets
|
39
|
-
|
40
|
-
# Ignore CI service files.
|
41
|
-
/.github
|
42
|
-
|
43
|
-
# Ignore development files
|
44
|
-
/.devcontainer
|
45
|
-
|
46
|
-
# Ignore Docker-related files
|
47
|
-
/.dockerignore
|
48
|
-
/Dockerfile*
|
@@ -1,9 +0,0 @@
|
|
1
|
-
# See https://git-scm.com/docs/gitattributes for more about git attribute files.
|
2
|
-
|
3
|
-
# Mark the database schema as having been generated.
|
4
|
-
db/schema.rb linguist-generated
|
5
|
-
|
6
|
-
# Mark any vendored files as having been vendored.
|
7
|
-
vendor/* linguist-vendored
|
8
|
-
config/credentials/*.yml.enc diff=rails_credentials
|
9
|
-
config/credentials.yml.enc diff=rails_credentials
|
@@ -1,90 +0,0 @@
|
|
1
|
-
name: CI
|
2
|
-
|
3
|
-
on:
|
4
|
-
pull_request:
|
5
|
-
push:
|
6
|
-
branches: [ main ]
|
7
|
-
|
8
|
-
jobs:
|
9
|
-
scan_ruby:
|
10
|
-
runs-on: ubuntu-latest
|
11
|
-
|
12
|
-
steps:
|
13
|
-
- name: Checkout code
|
14
|
-
uses: actions/checkout@v4
|
15
|
-
|
16
|
-
- name: Set up Ruby
|
17
|
-
uses: ruby/setup-ruby@v1
|
18
|
-
with:
|
19
|
-
ruby-version: .ruby-version
|
20
|
-
bundler-cache: true
|
21
|
-
|
22
|
-
- name: Scan for common Rails security vulnerabilities using static analysis
|
23
|
-
run: bin/brakeman --no-pager
|
24
|
-
|
25
|
-
scan_js:
|
26
|
-
runs-on: ubuntu-latest
|
27
|
-
|
28
|
-
steps:
|
29
|
-
- name: Checkout code
|
30
|
-
uses: actions/checkout@v4
|
31
|
-
|
32
|
-
- name: Set up Ruby
|
33
|
-
uses: ruby/setup-ruby@v1
|
34
|
-
with:
|
35
|
-
ruby-version: .ruby-version
|
36
|
-
bundler-cache: true
|
37
|
-
|
38
|
-
- name: Scan for security vulnerabilities in JavaScript dependencies
|
39
|
-
run: bin/importmap audit
|
40
|
-
|
41
|
-
lint:
|
42
|
-
runs-on: ubuntu-latest
|
43
|
-
steps:
|
44
|
-
- name: Checkout code
|
45
|
-
uses: actions/checkout@v4
|
46
|
-
|
47
|
-
- name: Set up Ruby
|
48
|
-
uses: ruby/setup-ruby@v1
|
49
|
-
with:
|
50
|
-
ruby-version: .ruby-version
|
51
|
-
bundler-cache: true
|
52
|
-
|
53
|
-
- name: Lint code for consistent style
|
54
|
-
run: bin/rubocop -f github
|
55
|
-
|
56
|
-
test:
|
57
|
-
runs-on: ubuntu-latest
|
58
|
-
|
59
|
-
# services:
|
60
|
-
# redis:
|
61
|
-
# image: redis
|
62
|
-
# ports:
|
63
|
-
# - 6379:6379
|
64
|
-
# options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
|
65
|
-
steps:
|
66
|
-
- name: Install packages
|
67
|
-
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y google-chrome-stable curl libjemalloc2 libvips sqlite3
|
68
|
-
|
69
|
-
- name: Checkout code
|
70
|
-
uses: actions/checkout@v4
|
71
|
-
|
72
|
-
- name: Set up Ruby
|
73
|
-
uses: ruby/setup-ruby@v1
|
74
|
-
with:
|
75
|
-
ruby-version: .ruby-version
|
76
|
-
bundler-cache: true
|
77
|
-
|
78
|
-
- name: Run tests
|
79
|
-
env:
|
80
|
-
RAILS_ENV: test
|
81
|
-
# REDIS_URL: redis://localhost:6379/0
|
82
|
-
run: bin/rails db:test:prepare test test:system
|
83
|
-
|
84
|
-
- name: Keep screenshots from failed system tests
|
85
|
-
uses: actions/upload-artifact@v4
|
86
|
-
if: failure()
|
87
|
-
with:
|
88
|
-
name: screenshots
|
89
|
-
path: ${{ github.workspace }}/tmp/screenshots
|
90
|
-
if-no-files-found: ignore
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
2
|
-
#
|
3
|
-
# Temporary files generated by your text editor or operating system
|
4
|
-
# belong in git's global ignore instead:
|
5
|
-
# `$XDG_CONFIG_HOME/git/ignore` or `~/.config/git/ignore`
|
6
|
-
|
7
|
-
# Ignore bundler config.
|
8
|
-
/.bundle
|
9
|
-
|
10
|
-
# Ignore all environment files (except templates).
|
11
|
-
/.env*
|
12
|
-
!/.env*.erb
|
13
|
-
|
14
|
-
# Ignore all logfiles and tempfiles.
|
15
|
-
/log/*
|
16
|
-
/tmp/*
|
17
|
-
!/log/.keep
|
18
|
-
!/tmp/.keep
|
19
|
-
|
20
|
-
# Ignore pidfiles, but keep the directory.
|
21
|
-
/tmp/pids/*
|
22
|
-
!/tmp/pids/
|
23
|
-
!/tmp/pids/.keep
|
24
|
-
|
25
|
-
# Ignore storage (uploaded files in development and any SQLite databases).
|
26
|
-
/storage/*
|
27
|
-
!/storage/.keep
|
28
|
-
/tmp/storage/*
|
29
|
-
!/tmp/storage/
|
30
|
-
!/tmp/storage/.keep
|
31
|
-
|
32
|
-
/public/assets
|
33
|
-
|
34
|
-
# Ignore master key for decrypting credentials and more.
|
35
|
-
/config/master.key
|
@@ -1 +0,0 @@
|
|
1
|
-
ruby-3.4.2
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# syntax = docker/dockerfile:1
|
2
|
-
|
3
|
-
# This Dockerfile is designed for production, not development. Use with Kamal or build'n'run by hand:
|
4
|
-
# docker build -t my-app .
|
5
|
-
# docker run -d -p 80:80 -p 443:443 --name my-app -e RAILS_MASTER_KEY=<value from config/master.key> my-app
|
6
|
-
|
7
|
-
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version
|
8
|
-
ARG RUBY_VERSION=3.4.2
|
9
|
-
FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
|
10
|
-
|
11
|
-
# Rails app lives here
|
12
|
-
WORKDIR /rails
|
13
|
-
|
14
|
-
# Install base packages
|
15
|
-
RUN apt-get update -qq && \
|
16
|
-
apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 && \
|
17
|
-
rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
18
|
-
|
19
|
-
# Set production environment
|
20
|
-
ENV RAILS_ENV="production" \
|
21
|
-
BUNDLE_DEPLOYMENT="1" \
|
22
|
-
BUNDLE_PATH="/usr/local/bundle" \
|
23
|
-
BUNDLE_WITHOUT="development"
|
24
|
-
|
25
|
-
# Throw-away build stage to reduce size of final image
|
26
|
-
FROM base AS build
|
27
|
-
|
28
|
-
# Install packages needed to build gems
|
29
|
-
RUN apt-get update -qq && \
|
30
|
-
apt-get install --no-install-recommends -y build-essential git pkg-config && \
|
31
|
-
rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
32
|
-
|
33
|
-
# Install application gems
|
34
|
-
COPY Gemfile Gemfile.lock ./
|
35
|
-
RUN bundle install && \
|
36
|
-
rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git && \
|
37
|
-
bundle exec bootsnap precompile --gemfile
|
38
|
-
|
39
|
-
# Copy application code
|
40
|
-
COPY . .
|
41
|
-
|
42
|
-
# Precompile bootsnap code for faster boot times
|
43
|
-
RUN bundle exec bootsnap precompile app/ lib/
|
44
|
-
|
45
|
-
# Precompiling assets for production without requiring secret RAILS_MASTER_KEY
|
46
|
-
RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
# Final stage for app image
|
52
|
-
FROM base
|
53
|
-
|
54
|
-
# Copy built artifacts: gems, application
|
55
|
-
COPY --from=build "${BUNDLE_PATH}" "${BUNDLE_PATH}"
|
56
|
-
COPY --from=build /rails /rails
|
57
|
-
|
58
|
-
# Run and own only the runtime files as a non-root user for security
|
59
|
-
RUN groupadd --system --gid 1000 rails && \
|
60
|
-
useradd rails --uid 1000 --gid 1000 --create-home --shell /bin/bash && \
|
61
|
-
chown -R rails:rails db log storage tmp
|
62
|
-
USER 1000:1000
|
63
|
-
|
64
|
-
# Entrypoint prepares the database.
|
65
|
-
ENTRYPOINT ["/rails/bin/docker-entrypoint"]
|
66
|
-
|
67
|
-
# Start the server by default, this can be overwritten at runtime
|
68
|
-
EXPOSE 3000
|
69
|
-
CMD ["./bin/rails", "server"]
|