gina 0.5.25 → 0.5.26

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 (549) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +22 -15
  3. package/ROADMAP.md +4 -3
  4. package/bin/cli +22 -1
  5. package/bin/cmd +11 -1
  6. package/bin/gina-init +1 -0
  7. package/framework/v0.5.26/VERSION +1 -0
  8. package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.js +10 -6
  9. package/framework/{v0.5.25 → v0.5.26}/core/config.js +29 -5
  10. package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/index.js +48 -3
  11. package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-json.js +4 -0
  12. package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-nunjucks.js +4 -0
  13. package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-swig.js +4 -0
  14. package/framework/{v0.5.25 → v0.5.26}/core/server.isaac.js +12 -0
  15. package/framework/{v0.5.25 → v0.5.26}/core/server.js +235 -1
  16. package/framework/{v0.5.25 → v0.5.26}/core/template/conf/settings.json +36 -0
  17. package/framework/{v0.5.25 → v0.5.26}/lib/authz-gate/src/main.js +169 -2
  18. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/arguments.json +1 -0
  19. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/help.txt +19 -6
  20. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/mcp-start.js +47 -5
  21. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/openapi.js +37 -4
  22. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/init.js +28 -1
  23. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/set.js +5 -0
  24. package/framework/{v0.5.25 → v0.5.26}/lib/connector-error/src/main.js +8 -4
  25. package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/mq/listener.js +32 -2
  26. package/framework/{v0.5.25 → v0.5.26}/lib/mcp-http/src/main.js +110 -11
  27. package/framework/{v0.5.25 → v0.5.26}/lib/merge/src/main.js +10 -6
  28. package/framework/{v0.5.25 → v0.5.26}/package.json +1 -1
  29. package/gna.js +4 -4
  30. package/llms.txt +10 -5
  31. package/package.json +3 -3
  32. package/resources/home/settings.json +1 -0
  33. package/schema/routing.json +20 -0
  34. package/schema/settings.json +13 -0
  35. package/utils/helper.js +1 -1
  36. package/framework/v0.5.25/VERSION +0 -1
  37. /package/framework/{v0.5.25 → v0.5.26}/AUTHORS +0 -0
  38. /package/framework/{v0.5.25 → v0.5.26}/LICENSE +0 -0
  39. /package/framework/{v0.5.25 → v0.5.26}/core/asset/html/nolayout.html +0 -0
  40. /package/framework/{v0.5.25 → v0.5.26}/core/asset/html/static.html +0 -0
  41. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/android-chrome-192x192.png +0 -0
  42. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/android-chrome-512x512.png +0 -0
  43. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/apple-touch-icon.png +0 -0
  44. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/favicon-16x16.png +0 -0
  45. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/favicon-32x32.png +0 -0
  46. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/favicon.ico +0 -0
  47. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/README.md +0 -0
  48. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  49. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  50. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  51. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  52. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  53. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  54. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  55. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  56. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  57. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  58. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  59. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  60. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  61. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  62. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
  63. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  64. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  65. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  66. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  67. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  68. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/ai/index.js +0 -0
  69. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/ai/lib/connector.js +0 -0
  70. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/connector.js +0 -0
  71. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  72. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  73. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/n1ql.js +0 -0
  74. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/session-store.js +0 -0
  75. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  76. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  77. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/index.js +0 -0
  78. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/connector.js +0 -0
  79. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/job-store.js +0 -0
  80. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  81. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/session-store.js +0 -0
  82. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mysql/index.js +0 -0
  83. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mysql/lib/connector.js +0 -0
  84. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/postgresql/index.js +0 -0
  85. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/postgresql/lib/connector.js +0 -0
  86. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/index.js +0 -0
  87. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/connector.js +0 -0
  88. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/job-store.js +0 -0
  89. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/render-cache-store.js +0 -0
  90. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/session-store.js +0 -0
  91. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/scylladb/index.js +0 -0
  92. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/scylladb/lib/connector.js +0 -0
  93. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/scylladb/lib/session-store.js +0 -0
  94. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sql-parser.js +0 -0
  95. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/index.js +0 -0
  96. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/lib/connector.js +0 -0
  97. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/lib/job-store.js +0 -0
  98. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/lib/session-store.js +0 -0
  99. /package/framework/{v0.5.25 → v0.5.26}/core/content.encoding +0 -0
  100. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.framework.js +0 -0
  101. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.js +0 -0
  102. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-nunjucks-async.js +0 -0
  103. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-stream.js +0 -0
  104. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-swig-async.js +0 -0
  105. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-v1.js +0 -0
  106. /package/framework/{v0.5.25 → v0.5.26}/core/controller/index.js +0 -0
  107. /package/framework/{v0.5.25 → v0.5.26}/core/controller/inspector-window-emit.js +0 -0
  108. /package/framework/{v0.5.25 → v0.5.26}/core/controller/release-banner.js +0 -0
  109. /package/framework/{v0.5.25 → v0.5.26}/core/dev/index.js +0 -0
  110. /package/framework/{v0.5.25 → v0.5.26}/core/dev/lib/class.js +0 -0
  111. /package/framework/{v0.5.25 → v0.5.26}/core/dev/lib/factory.js +0 -0
  112. /package/framework/{v0.5.25 → v0.5.26}/core/dev/lib/tools.js +0 -0
  113. /package/framework/{v0.5.25 → v0.5.26}/core/gna.js +0 -0
  114. /package/framework/{v0.5.25 → v0.5.26}/core/locales/README.md +0 -0
  115. /package/framework/{v0.5.25 → v0.5.26}/core/locales/currency.json +0 -0
  116. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/language/en.json +0 -0
  117. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/language/fr.json +0 -0
  118. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/region/en.json +0 -0
  119. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/region/fr.json +0 -0
  120. /package/framework/{v0.5.25 → v0.5.26}/core/locales/index.js +0 -0
  121. /package/framework/{v0.5.25 → v0.5.26}/core/mime.types +0 -0
  122. /package/framework/{v0.5.25 → v0.5.26}/core/model/entity.js +0 -0
  123. /package/framework/{v0.5.25 → v0.5.26}/core/model/index.js +0 -0
  124. /package/framework/{v0.5.25 → v0.5.26}/core/model/template/entityFactory.js +0 -0
  125. /package/framework/{v0.5.25 → v0.5.26}/core/model/template/index.js +0 -0
  126. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/README.md +0 -0
  127. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/index.js +0 -0
  128. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/csrf/README.md +0 -0
  129. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/csrf/package.json +0 -0
  130. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/csrf/src/main.js +0 -0
  131. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/README.md +0 -0
  132. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coep/README.md +0 -0
  133. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coep/package.json +0 -0
  134. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  135. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coop/README.md +0 -0
  136. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coop/package.json +0 -0
  137. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  138. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/corp/README.md +0 -0
  139. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/corp/package.json +0 -0
  140. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  141. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/csp/README.md +0 -0
  142. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/csp/package.json +0 -0
  143. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  144. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  145. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  146. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  147. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  148. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  149. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  150. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  151. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  152. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  153. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/package.json +0 -0
  154. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  155. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  156. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  157. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/src/main.js +0 -0
  158. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  159. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  160. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  161. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  162. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  163. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  164. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  165. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  166. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  167. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  168. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  169. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  170. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  171. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  172. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  173. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  174. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  175. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  176. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/session/README.md +0 -0
  177. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/session/package.json +0 -0
  178. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/session/src/main.js +0 -0
  179. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/README.md +0 -0
  180. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/build.json +0 -0
  181. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/package.json +0 -0
  182. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/src/main.js +0 -0
  183. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/README.md +0 -0
  184. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/build.json +0 -0
  185. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/package.json +0 -0
  186. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/src/form-validator.js +0 -0
  187. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/src/main.js +0 -0
  188. /package/framework/{v0.5.25 → v0.5.26}/core/router.js +0 -0
  189. /package/framework/{v0.5.25 → v0.5.26}/core/server.express.js +0 -0
  190. /package/framework/{v0.5.25 → v0.5.26}/core/status.codes +0 -0
  191. /package/framework/{v0.5.25 → v0.5.26}/core/template/_gitignore +0 -0
  192. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/app.json +0 -0
  193. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  194. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/routing.json +0 -0
  195. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/settings.json +0 -0
  196. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  197. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/templates.json +0 -0
  198. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  199. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  200. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  201. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  202. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/index.js +0 -0
  203. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/locales/en.json +0 -0
  204. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  205. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  206. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  207. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  208. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  209. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  210. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  211. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  212. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/readme.md +0 -0
  213. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/sw.js +0 -0
  214. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  215. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  216. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  217. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  218. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  219. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  220. /package/framework/{v0.5.25 → v0.5.26}/core/template/command/gina.bat.tpl +0 -0
  221. /package/framework/{v0.5.25 → v0.5.26}/core/template/command/gina.tpl +0 -0
  222. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/env.json +0 -0
  223. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/manifest.json +0 -0
  224. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/package.json +0 -0
  225. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/statics.json +0 -0
  226. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/templates.json +0 -0
  227. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/client/json/401.json +0 -0
  228. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/client/json/403.json +0 -0
  229. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/client/json/404.json +0 -0
  230. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/server/html/50x.html +0 -0
  231. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/server/json/500.json +0 -0
  232. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/server/json/503.json +0 -0
  233. /package/framework/{v0.5.25 → v0.5.26}/core/template/extensions/logger/config.json +0 -0
  234. /package/framework/{v0.5.25 → v0.5.26}/helpers/console.js +0 -0
  235. /package/framework/{v0.5.25 → v0.5.26}/helpers/context.js +0 -0
  236. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/LICENSE +0 -0
  237. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/README.md +0 -0
  238. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/package.json +0 -0
  239. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/src/main.js +0 -0
  240. /package/framework/{v0.5.25 → v0.5.26}/helpers/dateFormat.js +0 -0
  241. /package/framework/{v0.5.25 → v0.5.26}/helpers/index.js +0 -0
  242. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/LICENSE +0 -0
  243. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/README.md +0 -0
  244. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/package.json +0 -0
  245. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/src/main.js +0 -0
  246. /package/framework/{v0.5.25 → v0.5.26}/helpers/path.js +0 -0
  247. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/README.md +0 -0
  248. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/package.json +0 -0
  249. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/src/api-error.js +0 -0
  250. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/src/main.js +0 -0
  251. /package/framework/{v0.5.25 → v0.5.26}/helpers/prototypes.js +0 -0
  252. /package/framework/{v0.5.25 → v0.5.26}/helpers/task.js +0 -0
  253. /package/framework/{v0.5.25 → v0.5.26}/helpers/text.js +0 -0
  254. /package/framework/{v0.5.25 → v0.5.26}/lib/admin/package.json +0 -0
  255. /package/framework/{v0.5.25 → v0.5.26}/lib/admin/src/main.js +0 -0
  256. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/README.md +0 -0
  257. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/build.json +0 -0
  258. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/package.json +0 -0
  259. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/src/dep/jszip.min.js +0 -0
  260. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/src/main.js +0 -0
  261. /package/framework/{v0.5.25 → v0.5.26}/lib/async/package.json +0 -0
  262. /package/framework/{v0.5.25 → v0.5.26}/lib/async/src/main.js +0 -0
  263. /package/framework/{v0.5.25 → v0.5.26}/lib/audit/package.json +0 -0
  264. /package/framework/{v0.5.25 → v0.5.26}/lib/audit/src/main.js +0 -0
  265. /package/framework/{v0.5.25 → v0.5.26}/lib/audit-store.js +0 -0
  266. /package/framework/{v0.5.25 → v0.5.26}/lib/authz-gate/package.json +0 -0
  267. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/README.md +0 -0
  268. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/build.json +0 -0
  269. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/package.json +0 -0
  270. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/src/main.js +0 -0
  271. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/aliases.json +0 -0
  272. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/add.js +0 -0
  273. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/build.js +0 -0
  274. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/copy.js +0 -0
  275. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/cp.js +0 -0
  276. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/help.js +0 -0
  277. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  278. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/list.js +0 -0
  279. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/man.js +0 -0
  280. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/mcp.js +0 -0
  281. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/oas.js +0 -0
  282. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/remove.js +0 -0
  283. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/rename.js +0 -0
  284. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/restart.js +0 -0
  285. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/rm.js +0 -0
  286. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/start.js +0 -0
  287. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/status.js +0 -0
  288. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/stop.js +0 -0
  289. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/types.js +0 -0
  290. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/arguments.json +0 -0
  291. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/clear.js +0 -0
  292. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/help.txt +0 -0
  293. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/stats.js +0 -0
  294. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/add.js +0 -0
  295. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/arguments.json +0 -0
  296. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/help.js +0 -0
  297. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/help.txt +0 -0
  298. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/infer.js +0 -0
  299. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/list.js +0 -0
  300. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/migrate.js +0 -0
  301. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/models.js +0 -0
  302. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/remove.js +0 -0
  303. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/rm.js +0 -0
  304. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/test.js +0 -0
  305. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/arguments.json +0 -0
  306. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/help.js +0 -0
  307. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/help.txt +0 -0
  308. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/man.js +0 -0
  309. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/ps.js +0 -0
  310. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/stop.js +0 -0
  311. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/add.js +0 -0
  312. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/arguments.json +0 -0
  313. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/help.txt +0 -0
  314. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/args.js +0 -0
  315. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/namespace.js +0 -0
  316. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  317. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/reference-scan.js +0 -0
  318. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/scaffold.js +0 -0
  319. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/remove.js +0 -0
  320. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/rename.js +0 -0
  321. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/rm.js +0 -0
  322. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/add.js +0 -0
  323. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/get.js +0 -0
  324. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/help.js +0 -0
  325. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/help.txt +0 -0
  326. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/link-dev.js +0 -0
  327. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/list.js +0 -0
  328. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/remove.js +0 -0
  329. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/rm.js +0 -0
  330. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/set.js +0 -0
  331. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/unset.js +0 -0
  332. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/use.js +0 -0
  333. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/add.js +0 -0
  334. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/arguments.json +0 -0
  335. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/build.js +0 -0
  336. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/dot.js +0 -0
  337. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/get.js +0 -0
  338. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/help.js +0 -0
  339. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/help.txt +0 -0
  340. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/link-node-modules.js +0 -0
  341. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/link.js +0 -0
  342. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/list.js +0 -0
  343. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/man.js +0 -0
  344. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/msg.json +0 -0
  345. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/open.js +0 -0
  346. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/remove.js +0 -0
  347. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/reset.js +0 -0
  348. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/restart.js +0 -0
  349. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/start.js +0 -0
  350. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/status.js +0 -0
  351. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/stop.js +0 -0
  352. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/tail.js +0 -0
  353. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/update.js +0 -0
  354. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/version.js +0 -0
  355. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/gina-dev.1.md +0 -0
  356. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/gina-framework.1.md +0 -0
  357. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/gina.1.md +0 -0
  358. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/helper.js +0 -0
  359. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/add.js +0 -0
  360. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/arguments.json +0 -0
  361. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/export.js +0 -0
  362. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/help.js +0 -0
  363. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/help.txt +0 -0
  364. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/import.js +0 -0
  365. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/scan.js +0 -0
  366. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/_host.js +0 -0
  367. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/arguments.json +0 -0
  368. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/build.js +0 -0
  369. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/help.js +0 -0
  370. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/help.txt +0 -0
  371. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/list.js +0 -0
  372. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/man.js +0 -0
  373. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/rm.js +0 -0
  374. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/run.js +0 -0
  375. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/index.js +0 -0
  376. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/inspector/help.js +0 -0
  377. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/inspector/help.txt +0 -0
  378. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/inspector/open.js +0 -0
  379. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/man-render.js +0 -0
  380. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/arguments.json +0 -0
  381. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/help.js +0 -0
  382. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/help.txt +0 -0
  383. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/kill.js +0 -0
  384. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/list.js +0 -0
  385. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/msg.json +0 -0
  386. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/help.js +0 -0
  387. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/help.txt +0 -0
  388. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/inc/scan.js +0 -0
  389. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/list.js +0 -0
  390. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/reset.js +0 -0
  391. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/set.js +0 -0
  392. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/add.js +0 -0
  393. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/arguments.json +0 -0
  394. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/backup.js +0 -0
  395. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/build.js +0 -0
  396. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/help.js +0 -0
  397. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/help.txt +0 -0
  398. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/import.js +0 -0
  399. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/list.js +0 -0
  400. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/man.js +0 -0
  401. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/move.js +0 -0
  402. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/remove.js +0 -0
  403. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/rename.js +0 -0
  404. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/restart.js +0 -0
  405. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/restore.js +0 -0
  406. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/rm.js +0 -0
  407. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/start.js +0 -0
  408. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/status.js +0 -0
  409. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/stop.js +0 -0
  410. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/arguments.json +0 -0
  411. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/help.js +0 -0
  412. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/help.txt +0 -0
  413. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/list.js +0 -0
  414. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/remove.js +0 -0
  415. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/set.js +0 -0
  416. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/add.js +0 -0
  417. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/help.js +0 -0
  418. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/help.txt +0 -0
  419. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/link-local.js +0 -0
  420. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/link-production.js +0 -0
  421. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/list.js +0 -0
  422. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/remove.js +0 -0
  423. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/rm.js +0 -0
  424. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/use.js +0 -0
  425. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/arguments.json +0 -0
  426. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/check.js +0 -0
  427. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/help.js +0 -0
  428. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/help.txt +0 -0
  429. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/scan.js +0 -0
  430. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/help.js +0 -0
  431. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/help.txt +0 -0
  432. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/list.js +0 -0
  433. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/man.js +0 -0
  434. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/start.js +0 -0
  435. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/view/add.js +0 -0
  436. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd-status-format/package.json +0 -0
  437. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd-status-format/src/main.js +0 -0
  438. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/README.md +0 -0
  439. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/build.json +0 -0
  440. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/package.json +0 -0
  441. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/src/main.js +0 -0
  442. /package/framework/{v0.5.25 → v0.5.26}/lib/config.js +0 -0
  443. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-config/package.json +0 -0
  444. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-config/src/main.js +0 -0
  445. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-error/package.json +0 -0
  446. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-registry/package.json +0 -0
  447. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-registry/src/main.js +0 -0
  448. /package/framework/{v0.5.25 → v0.5.26}/lib/cron/README.md +0 -0
  449. /package/framework/{v0.5.25 → v0.5.26}/lib/cron/package.json +0 -0
  450. /package/framework/{v0.5.25 → v0.5.26}/lib/cron/src/main.js +0 -0
  451. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/LICENSE +0 -0
  452. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/README.md +0 -0
  453. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/package.json +0 -0
  454. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/src/main.js +0 -0
  455. /package/framework/{v0.5.25 → v0.5.26}/lib/dto/package.json +0 -0
  456. /package/framework/{v0.5.25 → v0.5.26}/lib/dto/src/main.js +0 -0
  457. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-pipe/package.json +0 -0
  458. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-pipe/src/main.js +0 -0
  459. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-types/package.json +0 -0
  460. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-types/src/main.js +0 -0
  461. /package/framework/{v0.5.25 → v0.5.26}/lib/generator/index.js +0 -0
  462. /package/framework/{v0.5.25 → v0.5.26}/lib/i18n/package.json +0 -0
  463. /package/framework/{v0.5.25 → v0.5.26}/lib/i18n/src/main.js +0 -0
  464. /package/framework/{v0.5.25 → v0.5.26}/lib/image-build/package.json +0 -0
  465. /package/framework/{v0.5.25 → v0.5.26}/lib/image-build/src/main.js +0 -0
  466. /package/framework/{v0.5.25 → v0.5.26}/lib/index.js +0 -0
  467. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/LICENSE +0 -0
  468. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/README.md +0 -0
  469. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/package.json +0 -0
  470. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/src/main.js +0 -0
  471. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-events/package.json +0 -0
  472. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-events/src/main.js +0 -0
  473. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-redact/package.json +0 -0
  474. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-redact/src/main.js +0 -0
  475. /package/framework/{v0.5.25 → v0.5.26}/lib/instrument/package.json +0 -0
  476. /package/framework/{v0.5.25 → v0.5.26}/lib/instrument/src/main.js +0 -0
  477. /package/framework/{v0.5.25 → v0.5.26}/lib/job/package.json +0 -0
  478. /package/framework/{v0.5.25 → v0.5.26}/lib/job/src/main.js +0 -0
  479. /package/framework/{v0.5.25 → v0.5.26}/lib/job-store.js +0 -0
  480. /package/framework/{v0.5.25 → v0.5.26}/lib/json-config-header/package.json +0 -0
  481. /package/framework/{v0.5.25 → v0.5.26}/lib/json-config-header/src/main.js +0 -0
  482. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/README.md +0 -0
  483. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/package.json +0 -0
  484. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/default/index.js +0 -0
  485. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/file/index.js +0 -0
  486. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  487. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  488. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/mq/index.js +0 -0
  489. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/mq/speaker.js +0 -0
  490. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/helper.js +0 -0
  491. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/main.js +0 -0
  492. /package/framework/{v0.5.25 → v0.5.26}/lib/math/index.js +0 -0
  493. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-dispatch/package.json +0 -0
  494. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-dispatch/src/main.js +0 -0
  495. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-http/package.json +0 -0
  496. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-server/package.json +0 -0
  497. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-server/src/main.js +0 -0
  498. /package/framework/{v0.5.25 → v0.5.26}/lib/merge/README.md +0 -0
  499. /package/framework/{v0.5.25 → v0.5.26}/lib/merge/package.json +0 -0
  500. /package/framework/{v0.5.25 → v0.5.26}/lib/metrics/package.json +0 -0
  501. /package/framework/{v0.5.25 → v0.5.26}/lib/metrics/src/main.js +0 -0
  502. /package/framework/{v0.5.25 → v0.5.26}/lib/model.js +0 -0
  503. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-filters/README.md +0 -0
  504. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-filters/package.json +0 -0
  505. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-filters/src/main.js +0 -0
  506. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-resolver/package.json +0 -0
  507. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-resolver/src/main.js +0 -0
  508. /package/framework/{v0.5.25 → v0.5.26}/lib/proc.js +0 -0
  509. /package/framework/{v0.5.25 → v0.5.26}/lib/release-watch/package.json +0 -0
  510. /package/framework/{v0.5.25 → v0.5.26}/lib/release-watch/src/main.js +0 -0
  511. /package/framework/{v0.5.25 → v0.5.26}/lib/render-cache/package.json +0 -0
  512. /package/framework/{v0.5.25 → v0.5.26}/lib/render-cache/src/main.js +0 -0
  513. /package/framework/{v0.5.25 → v0.5.26}/lib/render-cache-store.js +0 -0
  514. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/README.md +0 -0
  515. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/build.json +0 -0
  516. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/package.json +0 -0
  517. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/src/main.js +0 -0
  518. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/src/radix.js +0 -0
  519. /package/framework/{v0.5.25 → v0.5.26}/lib/routing-introspect/package.json +0 -0
  520. /package/framework/{v0.5.25 → v0.5.26}/lib/routing-introspect/src/main.js +0 -0
  521. /package/framework/{v0.5.25 → v0.5.26}/lib/secrets/package.json +0 -0
  522. /package/framework/{v0.5.25 → v0.5.26}/lib/secrets/src/backends/env.js +0 -0
  523. /package/framework/{v0.5.25 → v0.5.26}/lib/secrets/src/main.js +0 -0
  524. /package/framework/{v0.5.25 → v0.5.26}/lib/session-store.js +0 -0
  525. /package/framework/{v0.5.25 → v0.5.26}/lib/shell.js +0 -0
  526. /package/framework/{v0.5.25 → v0.5.26}/lib/state.js +0 -0
  527. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-filters/README.md +0 -0
  528. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-filters/package.json +0 -0
  529. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-filters/src/main.js +0 -0
  530. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-resolver/package.json +0 -0
  531. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-resolver/src/main.js +0 -0
  532. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/package.json +0 -0
  533. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/src/loaders/http.js +0 -0
  534. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/src/loaders/memory.js +0 -0
  535. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/src/main.js +0 -0
  536. /package/framework/{v0.5.25 → v0.5.26}/lib/url/README.md +0 -0
  537. /package/framework/{v0.5.25 → v0.5.26}/lib/url/index.js +0 -0
  538. /package/framework/{v0.5.25 → v0.5.26}/lib/url/routing.json +0 -0
  539. /package/framework/{v0.5.25 → v0.5.26}/lib/uuid/package.json +0 -0
  540. /package/framework/{v0.5.25 → v0.5.26}/lib/uuid/src/main.js +0 -0
  541. /package/framework/{v0.5.25 → v0.5.26}/lib/validator.js +0 -0
  542. /package/framework/{v0.5.25 → v0.5.26}/lib/watcher/package.json +0 -0
  543. /package/framework/{v0.5.25 → v0.5.26}/lib/watcher/src/main.js +0 -0
  544. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-framing/package.json +0 -0
  545. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-framing/src/main.js +0 -0
  546. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-query/package.json +0 -0
  547. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-query/src/main.js +0 -0
  548. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-session/package.json +0 -0
  549. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-session/src/main.js +0 -0
@@ -702,7 +702,13 @@ function Server(options) {
702
702
  isCacheless : options.conf[self.appName][self.env].isCacheless,
703
703
  routing : options.conf[self.appName][self.env].routing,
704
704
  allRoutes : options.conf.routing,
705
- cachePath : options.conf[self.appName][self.env].cachePath
705
+ cachePath : options.conf[self.appName][self.env].cachePath,
706
+ // #COMPLY9 — the transport-posture knobs resolve exactly like
707
+ // `scheme` itself: the bundle's settings (already seeded into
708
+ // serverOpt above) win, and these fills give env.json's
709
+ // per-env `server` block a voice when settings are silent.
710
+ requireHttps : options.conf[self.appName][self.env].server.requireHttps,
711
+ allowInsecure : options.conf[self.appName][self.env].server.allowInsecure
706
712
  }
707
713
  );
708
714
 
@@ -918,10 +924,28 @@ function Server(options) {
918
924
  throw new Error('[ SERVER ] `settings.json > auth` must be an object.');
919
925
  }
920
926
 
927
+ // #COMPLY10 — deny-by-default authorization: an un-annotated route is GATED
928
+ // rather than open, and opts back out with `param.public: true`. Read HERE,
929
+ // before the per-route loop, because two of that loop's refusals only apply
930
+ // while the mode is on. Strict boolean for the same reason as every sibling
931
+ // flag in this block: a truthy string would leave every un-annotated route
932
+ // silently UNGATED while the operator believes the bundle is deny-by-default
933
+ // — the quietly-OFF class this whole block exists to refuse.
934
+ var _authzDefaultDeny = false;
935
+ if ( typeof(_authzSettings.requireAuthByDefault) != 'undefined' ) {
936
+ if ( typeof(_authzSettings.requireAuthByDefault) != 'boolean' ) {
937
+ throw new Error('[ SERVER ] `settings.json > auth.requireAuthByDefault` must be a boolean — got '+ JSON.stringify(_authzSettings.requireAuthByDefault) +'. A truthy string would leave every un-annotated route silently UNGATED, so the boot refuses instead.');
938
+ }
939
+ _authzDefaultDeny = _authzSettings.requireAuthByDefault;
940
+ }
941
+
921
942
  var _authzSrcPath = self.conf[self.appName][self.env].bundlesPath + '/' + self.appName;
922
943
  var _authzCount = 0;
923
944
  var _authzRolesCount = 0;
924
945
  var _authzPolicyCount = 0;
946
+ var _authzPublicCount = 0;
947
+ var _authzDefaultGatedCount = 0;
948
+ var _authzWsUngated = []; // #B159 — ws routes the mode would otherwise count as gated
925
949
  for (var _authzRule in _authzRouting) {
926
950
  var _authzRoute = _authzRouting[_authzRule];
927
951
  if ( typeof(_authzRoute) != 'object' || _authzRoute === null || !_authzRoute.param ) {
@@ -983,6 +1007,84 @@ function Server(options) {
983
1007
  _authzGated = true;
984
1008
  ++_authzPolicyCount;
985
1009
  }
1010
+ // #B159 — a WebSocket route can declare an authorization key, but nothing
1011
+ // can ever enforce it. A `method: "ws"` route is registered on the engine's
1012
+ // extended-CONNECT handler and never reaches `handle()` / `router.route`,
1013
+ // which is where `lib/authz-gate` runs — so the gate is not merely skipped,
1014
+ // it is unreachable by construction. Left accepted, the route would lint
1015
+ // clean, boot, AND be counted in the "Registered N authorization-gated
1016
+ // route(s)" line below: the framework would actively confirm an illusion.
1017
+ // That is precisely the quietly-OFF class the rest of this block refuses
1018
+ // (a truthy-string `requireAuth` already refuses to boot), so a
1019
+ // structurally unenforceable one must refuse too. `/^ws$/i` is the SAME
1020
+ // predicate the ws registration uses, so the two can never disagree about
1021
+ // what a ws route is. Placed after the requireAuth/roles/policy blocks so
1022
+ // `_authzGated` is already final and one check covers all three keys.
1023
+ if ( _authzGated && /^ws$/i.test(_authzRoute.method || '') ) {
1024
+ throw new Error('[ SERVER ] Route `'+ _authzRule +'`: it is a `method: "ws"` route, so `param.requireAuth` / `param.roles` / `param.policy` can never be enforced on it — a WebSocket handshake is answered by the engine\'s extended-CONNECT handler and never reaches the authorization gate. Authenticate inside the `wsHandler` instead: it receives the full request, so it can inspect headers and cookies and close the socket itself. Remove the authorization key to make that explicit.');
1025
+ }
1026
+ // #COMPLY10 — `param.public`: the explicit exemption from
1027
+ // `auth.requireAuthByDefault`. Linted UNCONDITIONALLY, mode on or off:
1028
+ // a malformed exemption is an author error worth surfacing at the
1029
+ // deploy that INTRODUCES it, not at the later one that enables the mode
1030
+ // (the audit block's rationale below, applied here). Placed after the
1031
+ // requireAuth/roles/policy blocks so `_authzGated` is already final.
1032
+ if ( typeof(_authzRoute.param.public) != 'undefined' ) {
1033
+ if ( typeof(_authzRoute.param.public) != 'boolean' ) {
1034
+ throw new Error('[ SERVER ] Route `'+ _authzRule +'`: `param.public` must be a boolean (got `'+ typeof(_authzRoute.param.public) +'`). A truthy string would NOT exempt the route from `auth.requireAuthByDefault`.');
1035
+ }
1036
+ if ( _authzRoute.param.public === true ) {
1037
+ // Same axis, opposite answers. Neither reading is safe: honouring
1038
+ // `public` silently un-gates an explicitly gated route (fail-open),
1039
+ // and honouring the gate silently discards what the author wrote.
1040
+ // `roles` and `policy` both IMPLY `requireAuth`, so they collapse
1041
+ // into the same contradiction.
1042
+ if ( _authzGated ) {
1043
+ throw new Error('[ SERVER ] Route `'+ _authzRule +'`: `param.public: true` contradicts `param.requireAuth` / `param.roles` / `param.policy` on the same route — it cannot be both exempt from authentication and gated by it. Drop one.');
1044
+ }
1045
+ ++_authzPublicCount;
1046
+ }
1047
+ }
1048
+ // #B158 — a GATED route must not also be cached, however it is gated.
1049
+ // Both render-cache serve points run BEFORE the authorization gate: the
1050
+ // engine-agnostic read serves and RETURNS ahead of `router.route` (inside
1051
+ // which the gate runs), and isaac's runs pre-routing, before `req.routing`
1052
+ // even exists — so neither can consult authorization even in principle.
1053
+ // The key is `<release>:<kind>:<bundle>:<url>` with no principal component,
1054
+ // so a cached gated route replays the first authenticated caller's rendered
1055
+ // body to every later anonymous one. Measured live on an isolated boot: a
1056
+ // Bearer-authenticated render was served verbatim, same body and same
1057
+ // render nonce, to the next unauthenticated caller, while the identical
1058
+ // route WITHOUT `cache` correctly answered 401.
1059
+ //
1060
+ // #COMPLY10 shipped this refusal scoped to MODE-gated routes only, so that
1061
+ // enabling the mode could not break a working bundle; the explicitly
1062
+ // annotated case it deliberately left open is the pre-existing hole, and
1063
+ // closing it here is what #B158 is. Explicitly gated + cached is therefore
1064
+ // now refused in BOTH modes.
1065
+ var _authzRouteGated = _authzGated || ( _authzDefaultDeny && _authzRoute.param.public !== true );
1066
+ if (
1067
+ _authzRouteGated
1068
+ && typeof(_authzRoute.cache) != 'undefined'
1069
+ && _authzRoute.cache
1070
+ ) {
1071
+ throw new Error('[ SERVER ] Route `'+ _authzRule +'`: '+ ( _authzGated ? '`param.requireAuth` / `param.roles` / `param.policy` gate this route' : '`auth.requireAuthByDefault` gates this route' ) +', but it also declares `cache`. The render cache is read BEFORE authorization runs and its key carries no user identity, so the first authenticated response would be replayed to unauthenticated callers. Drop `cache`'+ ( _authzGated ? ', or remove the authorization keys if the route is meant to be open to everyone.' : ', or mark the route `"public": true` if it is meant to be cacheable and open.' ));
1072
+ }
1073
+ if ( _authzDefaultDeny && !_authzGated && _authzRoute.param.public !== true ) {
1074
+ // #B159 — the mode cannot gate a ws route either (same unreachable
1075
+ // gate). Counting one would repeat the illusion the explicit refusal
1076
+ // above exists to stop, so ws routes are excluded from the tally and
1077
+ // named once instead. A WARN rather than a refusal on purpose: an
1078
+ // explicit key is an author asserting something false, whereas the
1079
+ // mode sweeps up every un-annotated route, so refusing here would
1080
+ // break a working ws bundle the moment the mode is switched on — the
1081
+ // exact regression #COMPLY10 was scoped to avoid.
1082
+ if ( /^ws$/i.test(_authzRoute.method || '') ) {
1083
+ _authzWsUngated.push(_authzRule);
1084
+ } else {
1085
+ ++_authzDefaultGatedCount;
1086
+ }
1087
+ }
986
1088
  if ( _authzGated ) {
987
1089
  ++_authzCount;
988
1090
  }
@@ -1025,6 +1127,46 @@ function Server(options) {
1025
1127
  _authzLoginRoute = _authzPath;
1026
1128
  }
1027
1129
 
1130
+ // #COMPLY10 — the lockout check. Under deny-by-default a login route that
1131
+ // is not itself exempt bounces to ITSELF: the gate 302s an unauthenticated
1132
+ // caller to the login page, which is gated, which 302s again — the browser
1133
+ // gives up with ERR_TOO_MANY_REDIRECTS and the bundle has locked out every
1134
+ // visitor. It is statically detectable, so it refuses at boot rather than
1135
+ // at the first visitor — the same trade this block already makes for a
1136
+ // non-boolean `requireAuth` (one deploy-time error instead of a production
1137
+ // incident).
1138
+ if ( _authzDefaultDeny ) {
1139
+ if ( !_authzLoginRoute ) {
1140
+ // Legal and coherent for a pure API / machine-caller bundle (#MS3):
1141
+ // with no bounce target every unauthenticated request simply gets a
1142
+ // 401, which is the correct answer for a service. Warn, never refuse
1143
+ // — the `auth.machine.enabled`-with-no-callers precedent below:
1144
+ // legal, but worth seeing at boot.
1145
+ console.warn('[ SERVER ] `auth.requireAuthByDefault` is true and no `auth.loginRoute` is configured — every unauthenticated request to an un-annotated route gets a 401. Correct for an API bundle; a browser-facing bundle almost certainly wants a login route.');
1146
+ } else {
1147
+ var _authzLoginTarget = null;
1148
+ for (var _authzLr in _authzRouting) {
1149
+ var _authzLrRoute = _authzRouting[_authzLr];
1150
+ if ( typeof(_authzLrRoute) != 'object' || _authzLrRoute === null || typeof(_authzLrRoute.url) != 'string' ) {
1151
+ continue;
1152
+ }
1153
+ // `url` may carry the `,`-separated multi-url form (config.js
1154
+ // writes it for the webroot auto-redirect), so a match on any
1155
+ // member counts.
1156
+ if ( _authzLrRoute.url.split(',').indexOf(_authzLoginRoute) > -1 ) {
1157
+ _authzLoginTarget = _authzLrRoute;
1158
+ break;
1159
+ }
1160
+ }
1161
+ if ( !_authzLoginTarget ) {
1162
+ throw new Error('[ SERVER ] `auth.requireAuthByDefault` is true, but `auth.loginRoute` (`'+ _authzLoginRoute +'`) does not resolve to a route this bundle declares, so the boot cannot verify the login page is reachable without authenticating. Under deny-by-default an unverifiable login target is exactly the config that locks every visitor out — point `auth.loginRoute` at a routing.json rule name.');
1163
+ }
1164
+ if ( !_authzLoginTarget.param || _authzLoginTarget.param.public !== true ) {
1165
+ throw new Error('[ SERVER ] `auth.requireAuthByDefault` is true, but the login route (`'+ _authzLoginRoute +'`) is not marked `"public": true`. The mode would gate it, so an unauthenticated visitor is bounced to the login page, which bounces again — an infinite redirect that locks out every visitor. Add `"public": true` to that route\'s `param`.');
1166
+ }
1167
+ }
1168
+ }
1169
+
1028
1170
  // #MS3 — machine-caller authentication: lint + precompute at BOOT.
1029
1171
  // `settings.json > auth.machine` declares named machine callers
1030
1172
  // (services, job runners, external systems) whose
@@ -1113,7 +1255,22 @@ function Server(options) {
1113
1255
  console.warn('[ SERVER ] `auth.machine.enabled` is true but `auth.machine.callers` declares no caller and no `authenticator` is named — machine authentication is ON but can admit nobody.');
1114
1256
  }
1115
1257
  }
1258
+ // #COMPLY10 — the per-bundle posture map. MERGED mode runs every bundle of a
1259
+ // project in ONE process and this write happens once per init(), so a FLAT
1260
+ // mode flag would be decided by whichever bundle booted LAST: a bundle that
1261
+ // opted into deny-by-default would silently un-gate every one of its routes
1262
+ // the moment a sibling booted without the key. That is a fail-OPEN, and an
1263
+ // invisible one — the single failure direction this control must not have.
1264
+ // Reading the existing map first preserves what earlier bundles wrote.
1265
+ // (`loginRoute` / `machine` stay flat — pre-existing behaviour, untouched.)
1266
+ var _authzByBundle = (
1267
+ process.gina._authConf
1268
+ && process.gina._authConf.byBundle
1269
+ && typeof(process.gina._authConf.byBundle) == 'object'
1270
+ ) ? process.gina._authConf.byBundle : {};
1271
+ _authzByBundle[self.appName] = { requireAuthByDefault: _authzDefaultDeny };
1116
1272
  process.gina._authConf = { loginRoute: _authzLoginRoute, machine: _authzMachine };
1273
+ process.gina._authConf.byBundle = _authzByBundle;
1117
1274
  if ( _authzMachine.enabled === true ) {
1118
1275
  console.debug('[ BUNDLE ][ server ][ init ] Machine-caller authentication ENABLED — '+ Object.keys(_authzMachine.callers).length +' caller(s)'
1119
1276
  + ( _authzMachine.authenticator ? ' + authenticator `'+ _authzMachine.authenticator +'`' : '' )
@@ -1128,6 +1285,17 @@ function Server(options) {
1128
1285
  +' for [ '+ self.appName +' ]'
1129
1286
  + ( _authzLoginRoute ? ' — login bounce: '+ _authzLoginRoute : ' — no `auth.loginRoute`: unauthenticated requests get a 401' ));
1130
1287
  }
1288
+ if ( _authzDefaultDeny ) {
1289
+ // console.info, NOT console.debug — the shipped default log_level filters
1290
+ // debug, and under a mode that can lock a bundle out, the count of newly
1291
+ // gated routes is the single number an operator needs confirmed at deploy.
1292
+ console.info('[ BUNDLE ][ server ][ init ] Deny-by-default authorization ENABLED for [ '+ self.appName +' ] — '+ _authzDefaultGatedCount +' un-annotated route(s) now require authentication, '+ _authzPublicCount +' marked `public`');
1293
+ // #B159 — say plainly which routes the mode does NOT reach. Silence here
1294
+ // would read as "everything is gated now", which is the whole failure mode.
1295
+ if ( _authzWsUngated.length > 0 ) {
1296
+ console.warn('[ BUNDLE ][ server ][ init ] `auth.requireAuthByDefault` does NOT cover '+ _authzWsUngated.length +' WebSocket route(s) — '+ _authzWsUngated.join(', ') +'. A ws handshake never reaches the authorization gate, so these stay open unless their `wsHandler` authenticates. Mark them `"public": true` once you have confirmed that is intended.');
1297
+ }
1298
+ }
1131
1299
 
1132
1300
  // ── #COMPLY2 — audit trail: boot resolve + fail-fast lint ──
1133
1301
  // Sibling of the #COMPLY1 registrar above and the #DTO2 registrar before
@@ -1335,6 +1503,72 @@ function Server(options) {
1335
1503
  console.warn('[releaseWatch] init skipped: '+ (rwInitErr.stack || rwInitErr.message || rwInitErr));
1336
1504
  }
1337
1505
 
1506
+ // ── #COMPLY9 — production transport posture (ZT2) ──────────────────
1507
+ // Outside the `local` scope a bundle resolving a cleartext scheme is
1508
+ // served exactly as configured — both engines' scheme switches default
1509
+ // to cleartext — so the posture is surfaced at boot instead of staying
1510
+ // invisible: warn by default, refuse when the operator asked for
1511
+ // enforcement, acknowledge when the operator asserted the boundary.
1512
+ //
1513
+ // server.requireHttps === true → REFUSE to boot a cleartext bundle
1514
+ // outside the local scope. The throw lands in this init() try,
1515
+ // whose catch emergs + flushes + exits BEFORE any listen() — the
1516
+ // same pre-listen principle as the MCP transport's fail-closed
1517
+ // start(): the cleartext port is never reachable at all.
1518
+ // server.allowInsecure === true → the operator's assertion that TLS
1519
+ // terminates upstream (mesh sidecar, ingress/LB, reverse proxy —
1520
+ // the documented h2c topology); the warn becomes one info line.
1521
+ // Same vocabulary and polarity as `mcp.json > server >
1522
+ // allowInsecure`.
1523
+ //
1524
+ // Both are strict booleans resolved like `scheme` itself (bundle
1525
+ // settings win, env.json's `server` block fills — the picked-keys
1526
+ // merge above). A non-boolean throws: a truthy string on
1527
+ // `requireHttps` would leave the transport silently UNENFORCED while
1528
+ // the operator believes otherwise — the quietly-OFF class the authz
1529
+ // lints above refuse (`auth.requireAuthByDefault` precedent). The
1530
+ // scope gate is NOT-local, never is-production: custom scopes (e.g. a
1531
+ // `beta`) are neither local nor production, and a production-keyed
1532
+ // gate would silently skip them — the same reasoning as the
1533
+ // stack-trace egress gate. `conf.server.scopeIsLocal` is deliberately
1534
+ // not used (it derives from projects.json `def_scope`, not the live
1535
+ // scope). The scheme test is `!== 'https'`, fail-closed: anything the
1536
+ // engines cannot positively recognise as https is served cleartext
1537
+ // (their scheme switches `default:` to the plain server).
1538
+ var _tpRequireHttps = serverOpt.requireHttps;
1539
+ var _tpAllowInsecure = serverOpt.allowInsecure;
1540
+ // Type lint first, scope-independent: settings.json boots every
1541
+ // scope, so the dev machine catches the typo before it ships.
1542
+ if ( typeof(_tpRequireHttps) != 'undefined' && typeof(_tpRequireHttps) != 'boolean' ) {
1543
+ throw new Error('[ SERVER ] `settings.json > server.requireHttps` must be a boolean — got '+ JSON.stringify(_tpRequireHttps) +'. A truthy string would leave the transport silently UNENFORCED, so the boot refuses instead.');
1544
+ }
1545
+ if ( typeof(_tpAllowInsecure) != 'undefined' && typeof(_tpAllowInsecure) != 'boolean' ) {
1546
+ throw new Error('[ SERVER ] `settings.json > server.allowInsecure` must be a boolean — got '+ JSON.stringify(_tpAllowInsecure) +'.');
1547
+ }
1548
+ if ( _tpRequireHttps === true && _tpAllowInsecure === true ) {
1549
+ throw new Error('[ SERVER ] `server.requireHttps` and `server.allowInsecure` are both true — they assert opposite postures (enforce https at this bundle vs TLS terminates upstream). Keep exactly one.');
1550
+ }
1551
+ if ( serverOpt.scheme !== 'https' && !self.isLocalScope() ) {
1552
+ if ( _tpRequireHttps === true ) {
1553
+ throw new Error('[ SERVER ] `server.requireHttps` is true, but bundle `'+ self.appName +'` resolves scheme `'+ serverOpt.scheme +'` in scope `'+ self.scope +'` — the listener would serve cleartext outside the local scope, which is exactly what this knob refuses (the refusal is pre-listen: nothing binds). Switch the bundle to https (`settings.json > server.scheme: "https"` + `server.credentials`), or — if TLS terminates upstream (mesh, ingress, reverse proxy) — replace `requireHttps` with `server.allowInsecure: true`.');
1554
+ }
1555
+ if ( _tpAllowInsecure === true ) {
1556
+ console.info('[ BUNDLE ][ server ][ init ] transport posture: scheme `'+ serverOpt.scheme +'` in scope `'+ self.scope +'` — allowInsecure asserted (TLS terminates upstream).');
1557
+ } else {
1558
+ // proxy.json is advisory only — an https:// upstream hostname
1559
+ // for this scope+env strongly suggests TLS terminates there,
1560
+ // but only the explicit `allowInsecure` assertion silences
1561
+ // the warn (a reviewer can tell an audited acknowledgment
1562
+ // from a leftover; the #COMPLY10 `public`-marker rationale).
1563
+ var _tpProxyNote = ( typeof(process.gina.PROXY_HOSTNAME) != 'undefined' && /^https:\/\//i.test(process.gina.PROXY_HOSTNAME) )
1564
+ ? ' proxy.json declares `'+ process.gina.PROXY_HOSTNAME +'` for this scope+env, so TLS likely terminates there.'
1565
+ : '';
1566
+ console.warn('[ BUNDLE ][ server ][ init ] transport posture: bundle `'+ self.appName +'` serves plain `'+ serverOpt.scheme +'` in scope `'+ self.scope +'` — the transport at this listener is cleartext.'+ _tpProxyNote +' If TLS terminates upstream (mesh, ingress/LB, reverse proxy — the documented h2c topology), acknowledge with `server.allowInsecure: true`; to enforce https at this bundle, set `server.requireHttps: true`.');
1567
+ }
1568
+ } else if ( _tpRequireHttps === true && serverOpt.scheme === 'https' && !self.isLocalScope() ) {
1569
+ console.info('[ BUNDLE ][ server ][ init ] transport posture: server.requireHttps satisfied — scheme is https.');
1570
+ }
1571
+
1338
1572
  self.emit('configured', false, engine.instance, engine.middleware, self.conf[self.appName][self.env]);
1339
1573
 
1340
1574
  } catch (err) {
@@ -76,6 +76,18 @@
76
76
  "debounceMs": 750,
77
77
  "reconcileIntervalMs": 0
78
78
  },
79
+ // #COMPLY9 — production transport posture. Outside the `local` scope a bundle
80
+ // resolving a cleartext scheme (anything but https) WARNS at boot.
81
+ // "requireHttps": true -> refuse to boot the cleartext bundle instead — the
82
+ // refusal is pre-listen, nothing ever binds.
83
+ // "allowInsecure": true -> acknowledge that TLS terminates upstream (mesh
84
+ // sidecar, ingress/LB, reverse proxy — the documented
85
+ // h2c topology); the warn becomes one info line. Same
86
+ // vocabulary as `mcp.json > server > allowInsecure`.
87
+ // Strict booleans; setting both is a boot-refused contradiction. Resolved like
88
+ // `scheme` itself: bundle settings win, env.json's `server` block fills per env.
89
+ // The keys are deliberately NOT set here — an explicit template default would
90
+ // shadow env.json's per-env fill.
79
91
  // Compare with core/content.encoding
80
92
  // This is the prefered order when it comes to respond with compressed content
81
93
  "preferedCompressionEncodingOrder": ["br", "deflate", "gzip", "zstdn", "dcb", "dcz", "compress"]
@@ -228,8 +240,32 @@
228
240
  // },
229
241
  // "authenticator": null
230
242
  // }
243
+ //
244
+ // requireAuthByDefault — #COMPLY10 deny-by-default authorization.
245
+ // false (default) keeps today's posture: a route is open unless it
246
+ // declares `requireAuth` / `roles` / `policy`. true INVERTS that for
247
+ // THIS bundle — every route requires authentication unless its
248
+ // `param` carries `"public": true`. STRICTLY boolean: a truthy
249
+ // string would leave every un-annotated route silently UNGATED while
250
+ // you believed the bundle was locked down, so it refuses to boot.
251
+ // Enable it in a non-production environment FIRST and read the boot
252
+ // line, which reports how many routes it just gated.
253
+ // The boot also refuses three configs this mode makes dangerous:
254
+ // * `"public": true` on a route that ALSO declares an explicit
255
+ // gate key (it cannot be both exempt from auth and gated by it);
256
+ // * a login route the mode would gate — it would bounce to itself,
257
+ // an infinite redirect that locks out every visitor;
258
+ // * a mode-gated route that also declares `cache` — the render
259
+ // cache is read BEFORE authorization and its key carries no user
260
+ // identity, so a cached gated route would replay one user's
261
+ // authenticated page to anonymous callers.
262
+ // The framework's own injected routes ship `"public": true`, so the
263
+ // site root, the error page, `/_status` and the upload endpoints keep
264
+ // working when you flip this on.
265
+ // Changing this needs a bundle restart (boot config).
231
266
  "auth": {
232
267
  "loginRoute": null,
268
+ "requireAuthByDefault": false,
233
269
  "machine": {
234
270
  "enabled": false,
235
271
  "callers": {},
@@ -61,6 +61,32 @@
61
61
  * It is a strict NO-OP for every route that declares no authorization key, so an
62
62
  * existing bundle is byte-identical.
63
63
  *
64
+ * ## Deny-by-default (#COMPLY10 — opt-in, per bundle)
65
+ * `settings.json > auth.requireAuthByDefault: true` INVERTS that last sentence for
66
+ * the bundle that sets it: a route declaring no authorization key is then GATED
67
+ * rather than open, and a route opts back out with `param.public: true`. Nothing
68
+ * else about the gate changes — an un-annotated route carries neither `roles` nor
69
+ * `policy`, so the mode can only ever produce the 401 or the login bounce.
70
+ *
71
+ * The exemption is a POSITIVE marker (`public: true`), matching #CSRF2's
72
+ * `csrfExempt` rationale: a misread leaves the SECURE state. Reusing
73
+ * `requireAuth: false` was rejected for the opposite reason — it would make one
74
+ * literal mean "no-op" in a normal bundle and "audited security exemption" in a
75
+ * deny-by-default one, so a reviewer could not tell an intentional exemption from
76
+ * a leftover.
77
+ *
78
+ * The mode is keyed PER BUNDLE (`_authConf.byBundle`), not flat: merged mode runs
79
+ * every bundle in one process, and a flat flag would let whichever bundle booted
80
+ * last decide the posture for all of them — silently un-gating a bundle that had
81
+ * opted in. See `requireAuthByDefault()` below.
82
+ *
83
+ * `core/server.js` refuses to boot on the contradictions the mode makes possible:
84
+ * `public` alongside an explicit gate key; a login route the mode would gate (which
85
+ * bounces to itself — an infinite redirect, i.e. total lockout); and a route the
86
+ * mode gates that also declares `cache`, because both render-cache serve points run
87
+ * BEFORE this gate and the cache key carries no principal, so a cached gated route
88
+ * would replay an authenticated body to anonymous callers.
89
+ *
64
90
  * ## The roles contract (#COMPLY1 defines it; the app populates it)
65
91
  * `req.session.user.roles` is a plain array of opaque role-name strings — the
66
92
  * framework imposes no vocabulary and no role→permission indirection (v1 names
@@ -211,6 +237,57 @@ var getLoginRoute = function () {
211
237
  return ( conf && typeof(conf.loginRoute) == 'string' && conf.loginRoute ) ? conf.loginRoute : null;
212
238
  };
213
239
 
240
+ /**
241
+ * #COMPLY10 — read the deny-by-default authorization mode for the request's
242
+ * OWN bundle.
243
+ *
244
+ * `core/server.js` lints `settings.json > auth.requireAuthByDefault` at boot and
245
+ * writes it onto `process.gina._authConf.byBundle[<bundle>]`, so the request path
246
+ * costs an O(1) property read (the `loginRoute` / `_policies` precedent).
247
+ *
248
+ * The per-bundle keying is load-bearing rather than tidy. `_authConf` is written
249
+ * once per `init()`, and MERGED mode runs every bundle of a project in ONE process
250
+ * (`core/config.js`), so a flat flag would be overwritten by whichever bundle
251
+ * booted last: a bundle that enabled the mode would silently un-gate every one of
252
+ * its routes because a sibling booted after it without the key. That is a
253
+ * fail-OPEN, and the one failure direction a deny-by-default control must never
254
+ * have. Keying by `req.routing.bundle` — populated on BOTH dispatch paths — makes
255
+ * each bundle's posture independent of its boot order.
256
+ *
257
+ * Fail-safe direction is deliberately INVERTED here relative to the rest of the
258
+ * gate: an unidentifiable bundle returns `false` (do not gate). Every other
259
+ * unknown in this module denies, because denying is the safe direction when the
260
+ * question is "may this caller through". Here the question is "did an operator
261
+ * ask for this mode at all", and answering yes on missing evidence would gate a
262
+ * bundle whose author never opted in — turning a config gap into a total outage.
263
+ * It is unreachable from dispatch regardless (`core/server.js` skips any route
264
+ * carrying no `param`, and every matched route carries a `bundle`).
265
+ *
266
+ * @param {object} req - the request (reads `req.routing.bundle`).
267
+ * @returns {boolean} `true` when THIS bundle opted into deny-by-default.
268
+ * @inner
269
+ * @private
270
+ */
271
+ var requireAuthByDefault = function (req) {
272
+ var conf = ( typeof(process.gina) != 'undefined' && process.gina && process.gina._authConf )
273
+ ? process.gina._authConf
274
+ : null;
275
+
276
+ if ( !conf || !conf.byBundle || typeof(conf.byBundle) != 'object' ) {
277
+ return false;
278
+ }
279
+
280
+ var bundle = ( req && req.routing && typeof(req.routing.bundle) == 'string' && req.routing.bundle !== '' )
281
+ ? req.routing.bundle
282
+ : null;
283
+ if ( !bundle ) {
284
+ return false;
285
+ }
286
+
287
+ var entry = conf.byBundle[bundle];
288
+ return ( entry && entry.requireAuthByDefault === true ) ? true : false;
289
+ };
290
+
214
291
  /**
215
292
  * The authentication predicate — the shape every #COMPLY1 surface reads.
216
293
  *
@@ -874,11 +951,75 @@ var runPolicy = function (controller, req, name, user) {
874
951
  return denyForbidden(controller, req, 'policy `'+ name +'` did not allow', '403-policy');
875
952
  };
876
953
 
954
+ /**
955
+ * Is the matched route gated by authorization at all?
956
+ *
957
+ * The ONE runtime answer to that question: `authorizeRequest` branches on it to
958
+ * decide whether to authenticate, and the render delegates read it to decide
959
+ * whether an entry may be written to the render cache (#B158). Keeping a single
960
+ * implementation is the point — a second copy that drifted would either gate a
961
+ * route the cache still stores (the #B158 leak, reopened) or refuse to store a
962
+ * route nobody gates.
963
+ *
964
+ * Precedence is STRUCTURAL, not conditional, and deliberately so: `param.public`
965
+ * is consulted only INSIDE the un-annotated branch, so it can never un-gate a
966
+ * route that carries an explicit key. The boot lint refuses that contradiction
967
+ * outright, but a hand-built or tampered config must still fail CLOSED without
968
+ * depending on the lint having run.
969
+ *
970
+ * @param {object} req - the request. Reads `req.routing.param.requireAuth`,
971
+ * `param.roles`, `param.policy`, `param.public` and
972
+ * `req.routing.bundle` (for the #COMPLY10 per-bundle mode).
973
+ * @returns {boolean} `true` when the route requires an authenticated principal.
974
+ *
975
+ * @example
976
+ * // a render delegate, before storing a rendered body
977
+ * if ( lib.authzGate.isRouteGated(req) ) {
978
+ * return; // never cache a body rendered for an authenticated principal
979
+ * }
980
+ */
981
+ var isRouteGated = function (req) {
982
+ if ( !req || !req.routing || !req.routing.param ) {
983
+ return false;
984
+ }
985
+
986
+ var param = req.routing.param;
987
+
988
+ // An explicit key gates the route. `roles` and `policy` each IMPLY
989
+ // `requireAuth` — an unauthenticated caller can hold no role, and a policy
990
+ // is handed an authenticated user. Strict shapes only: the boot lint rejects
991
+ // every other declared form, so an invalid key must never HALF-gate.
992
+ if ( param.requireAuth === true ) {
993
+ return true;
994
+ }
995
+ if ( Array.isArray(param.roles) && param.roles.length > 0 ) {
996
+ return true;
997
+ }
998
+ if ( typeof(param.policy) == 'string' && param.policy !== '' ) {
999
+ return true;
1000
+ }
1001
+
1002
+ // Un-annotated from here — the only branch #COMPLY10 inverts. Written as a
1003
+ // `!== true` test on purpose: §15.2 locates `authorizeRequest`'s own strict
1004
+ // equality test on `param.public` by taking the FIRST match of that source
1005
+ // line in this file, to prove the exemption sits inside its un-annotated
1006
+ // branch. Spelling the same form here — in code OR in a comment quoting it —
1007
+ // steals that position and breaks the pin without changing any behaviour,
1008
+ // so do not "tidy" this into the strict-equality form.
1009
+ if ( param.public !== true ) {
1010
+ return requireAuthByDefault(req);
1011
+ }
1012
+
1013
+ return false; // explicitly exempted from the default gate
1014
+ };
1015
+
877
1016
  /**
878
1017
  * Authorize a request against the route it matched.
879
1018
  *
880
1019
  * NO-OP (returns `true`) unless the route declares an authorization key
881
- * (`param.requireAuth: true`, `param.roles` and/or `param.policy`). Evaluation order:
1020
+ * (`param.requireAuth: true`, `param.roles` and/or `param.policy`) — or unless the
1021
+ * bundle opted into #COMPLY10 deny-by-default, in which case an un-annotated route
1022
+ * is gated too, and only `param.public: true` exempts it. Evaluation order:
882
1023
  * **authN → roles → policy** — an unauthenticated caller on a gated route always gets
883
1024
  * the 401/bounce, never a 403 (it must not learn that the route is role- or
884
1025
  * policy-restricted, only that it requires signing in). Roles and policy are
@@ -894,6 +1035,8 @@ var runPolicy = function (controller, req, name, user) {
894
1035
  * write the response).
895
1036
  * @param {object} req - the request. Reads `req.routing.param.requireAuth`,
896
1037
  * `req.routing.param.roles`, `req.routing.param.policy`,
1038
+ * `req.routing.param.public` and `req.routing.bundle`
1039
+ * (#COMPLY10),
897
1040
  * `req.session.user` (and its `.roles`),
898
1041
  * `req.headers.authorization` (#MS3, gated routes only),
899
1042
  * `req.isXMLRequest` and `req[method]`; stamps
@@ -931,8 +1074,31 @@ var authorizeRequest = function (controller, req, res) {
931
1074
 
932
1075
  // Strictly `=== true`: the boot lint rejects any other type, so by request time the
933
1076
  // flag is `true`, `false` or absent — and an absent/false flag must never gate.
1077
+ //
1078
+ // `isRouteGated` above answers the same question for callers that need the verdict
1079
+ // without the enforcement (the #B158 render-cache write guard). The two MUST move
1080
+ // together; §15 pins this structure and a truth-table test pins their agreement.
934
1081
  if ( param.requireAuth !== true && !mustMatchRoles && !mustRunPolicy ) {
935
- return true; // the route declares no authorization — nothing to do
1082
+ // #COMPLY10 — the deny-by-default mode inverts THIS branch, and only this
1083
+ // branch: an un-annotated route becomes gated instead of open.
1084
+ //
1085
+ // `param.public` is tested INSIDE the un-annotated branch rather than
1086
+ // beside it, which is what makes the precedence STRUCTURAL rather than
1087
+ // conditional: a route carrying `public` alongside an explicit gate key
1088
+ // never reaches here at all, so `public` can never un-gate an explicitly
1089
+ // gated route. The boot lint refuses that contradiction outright — this
1090
+ // shape means a hand-built or tampered config still fails CLOSED instead
1091
+ // of depending on the lint having run.
1092
+ if ( param.public === true ) {
1093
+ return true; // explicitly exempted from the default gate
1094
+ }
1095
+ if ( !requireAuthByDefault(req) ) {
1096
+ return true; // mode off — the pre-#COMPLY10 no-op, byte-identical
1097
+ }
1098
+ // Mode ON, un-annotated, not exempt: fall through to the authN block below.
1099
+ // `roles` and `policy` are absent by definition on this path, so the only
1100
+ // reachable outcomes are the 401 and the login bounce — a 403 cannot occur
1101
+ // here, which preserves the shipped 401-vs-403 convention with no new code.
936
1102
  }
937
1103
 
938
1104
  // The effective principal: the SESSION user when authenticated (session
@@ -989,6 +1155,7 @@ var authorizeRequest = function (controller, req, res) {
989
1155
 
990
1156
  module.exports = {
991
1157
  authorizeRequest : authorizeRequest,
1158
+ isRouteGated : isRouteGated,
992
1159
  isAuthenticated : isAuthenticated,
993
1160
  hasAnyRole : hasAnyRole,
994
1161
  registerPolicy : registerPolicy,
@@ -15,6 +15,7 @@
15
15
  "--max-in-flight",
16
16
  "--auth-token",
17
17
  "--cors-origin",
18
+ "--allow-insecure",
18
19
  "--dry-run",
19
20
  "--format"
20
21
  ]
@@ -295,9 +295,22 @@
295
295
  allowlist (`http(s)://localhost`, `127.0.0.1`,
296
296
  `[::1]` on any port). Comma-separated. Pass
297
297
  `*` to disable the Origin check entirely.
298
-
299
- Default security posture — bind loopback, no auth, Origin allowlist
300
- accepts localhost / 127.0.0.1 / [::1] only. For OAuth-protected
301
- deployments, place gina behind a reverse proxy (oauth2-proxy, Traefik
302
- ForwardAuth, nginx `auth_request`) that handles the OAuth dance and
303
- forwards the upstream request.
298
+ --allow-insecure Run without a bearer token even when an
299
+ ambient protection has been removed. Assert
300
+ only when access is restricted upstream (mesh,
301
+ NetworkPolicy, authenticating proxy). Also
302
+ `mcp.json > server > allowInsecure`.
303
+
304
+ Default security posture — bind loopback, Origin allowlist accepts
305
+ localhost / 127.0.0.1 / [::1] only. On that default a bearer token is
306
+ optional: the loopback bind and the Origin allowlist are the protection.
307
+
308
+ Remove either one and a token becomes REQUIRED — binding a non-loopback
309
+ address (`--http-host=0.0.0.0`), or disabling the Origin check
310
+ (`--cors-origin=*`), makes the server refuse to start unless you pass
311
+ `--auth-token` or `--allow-insecure`. Nothing ever listens unauthenticated.
312
+
313
+ For OAuth-protected deployments, place gina behind a reverse proxy
314
+ (oauth2-proxy, Traefik ForwardAuth, nginx `auth_request`) that handles the
315
+ OAuth dance and forwards the upstream request — that topology is
316
+ non-loopback and token-less by design, so it wants `--allow-insecure`.