tina4ruby 3.13.98 → 3.13.99

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -0
  3. data/lib/tina4/ai.rb +32 -3
  4. data/lib/tina4/api.rb +5 -0
  5. data/lib/tina4/auto_crud.rb +62 -4
  6. data/lib/tina4/background.rb +112 -31
  7. data/lib/tina4/cache.rb +3 -2
  8. data/lib/tina4/cli.rb +55 -67
  9. data/lib/tina4/database.rb +97 -49
  10. data/lib/tina4/database_adapter.rb +169 -15
  11. data/lib/tina4/dev_admin.rb +137 -9
  12. data/lib/tina4/dispatch_pipeline.rb +145 -4
  13. data/lib/tina4/drivers/firebird_driver.rb +59 -12
  14. data/lib/tina4/drivers/mongodb_driver.rb +98 -14
  15. data/lib/tina4/drivers/mssql_driver.rb +39 -2
  16. data/lib/tina4/drivers/mysql_driver.rb +43 -3
  17. data/lib/tina4/drivers/odbc_driver.rb +36 -2
  18. data/lib/tina4/drivers/postgres_driver.rb +5 -0
  19. data/lib/tina4/drivers/sqlite_driver.rb +11 -1
  20. data/lib/tina4/env.rb +1 -1
  21. data/lib/tina4/error_overlay.rb +43 -49
  22. data/lib/tina4/field_types.rb +33 -16
  23. data/lib/tina4/frond.rb +24 -2
  24. data/lib/tina4/gallery/auth/src/routes/api/gallery_auth.rb +1 -1
  25. data/lib/tina4/gallery/templates/src/templates/gallery_page.twig +1 -1
  26. data/lib/tina4/graphql.rb +2 -2
  27. data/lib/tina4/log.rb +652 -485
  28. data/lib/tina4/mcp.rb +9 -1
  29. data/lib/tina4/messenger.rb +25 -0
  30. data/lib/tina4/middleware.rb +189 -76
  31. data/lib/tina4/migration.rb +47 -15
  32. data/lib/tina4/orm.rb +280 -59
  33. data/lib/tina4/port_takeover.rb +202 -0
  34. data/lib/tina4/public/js/tina4-dev-admin.min.js +23 -19
  35. data/lib/tina4/rack_app.rb +201 -59
  36. data/lib/tina4/realtime.rb +6 -1
  37. data/lib/tina4/request.rb +259 -51
  38. data/lib/tina4/router.rb +20 -2
  39. data/lib/tina4/seeder.rb +68 -19
  40. data/lib/tina4/shutdown.rb +4 -0
  41. data/lib/tina4/sql_translator.rb +115 -86
  42. data/lib/tina4/swagger.rb +19 -3
  43. data/lib/tina4/template.rb +61 -6
  44. data/lib/tina4/test_client.rb +49 -3
  45. data/lib/tina4/testing.rb +16 -11
  46. data/lib/tina4/validator.rb +7 -1
  47. data/lib/tina4/version.rb +1 -1
  48. data/lib/tina4/webserver.rb +28 -40
  49. data/lib/tina4.rb +12 -1
  50. metadata +3 -2
data/lib/tina4.rb CHANGED
@@ -388,7 +388,7 @@ module Tina4
388
388
  reset = is_tty ? "\e[0m" : ""
389
389
 
390
390
  is_debug = Tina4::Env.is_truthy(ENV["TINA4_DEBUG"])
391
- log_level = (ENV["TINA4_LOG_LEVEL"] || "[TINA4_LOG_ALL]").upcase
391
+ log_level = (ENV["TINA4_LOG_LEVEL"] || "ALL").upcase
392
392
  display = (host == "0.0.0.0" || host == "::") ? "localhost" : host
393
393
 
394
394
  # Auto-detect server name if not provided
@@ -456,6 +456,17 @@ module Tina4
456
456
  # Setup auth keys
457
457
  Tina4::Auth.setup(root_dir)
458
458
 
459
+ # Auto-attach CSRF protection when TINA4_CSRF is enabled (OFF by default).
460
+ # Mirrors the Python master's attach_csrf_from_env -- the env flag is the
461
+ # switch; unset means no CSRF gate. Idempotent, so a re-init is safe.
462
+ Tina4::CsrfMiddleware.attach_from_env
463
+
464
+ # Security headers: register in the default chain UNCONDITIONALLY
465
+ # (secure-by-default, SECHDR-DEC-01). Unlike CSRF this needs no opt-in -- a
466
+ # default app ships X-Frame-Options/X-Content-Type-Options/CSP/etc. with no
467
+ # code change. HSTS stays HTTPS-only. Idempotent.
468
+ Tina4::SecurityHeadersMiddleware.attach
469
+
459
470
  # Load translations
460
471
  Tina4::Localization.load(root_dir)
461
472
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tina4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.13.98
4
+ version: 3.13.99
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tina4 Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-08-11 00:00:00.000000000 Z
11
+ date: 2026-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -398,6 +398,7 @@ files:
398
398
  - lib/tina4/mqtt_message.rb
399
399
  - lib/tina4/orm.rb
400
400
  - lib/tina4/plan.rb
401
+ - lib/tina4/port_takeover.rb
401
402
  - lib/tina4/project_index.rb
402
403
  - lib/tina4/public/__feedback/widget.js
403
404
  - lib/tina4/public/css/tina4.css