@open-rlb/nestjs-amqp 2.0.11 → 2.0.13

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 (43) hide show
  1. package/common/errors.d.ts +2 -1
  2. package/common/errors.js +2 -1
  3. package/common/errors.js.map +1 -1
  4. package/modules/broker/const.d.ts +1 -0
  5. package/modules/broker/const.js +2 -1
  6. package/modules/broker/const.js.map +1 -1
  7. package/modules/gateway-admin/repository/http-path.repository.d.ts +1 -0
  8. package/modules/gateway-admin/repository/http-path.repository.js.map +1 -1
  9. package/modules/gateway-admin/services/gateway-auth.service.d.ts +4 -2
  10. package/modules/gateway-admin/services/gateway-auth.service.js +18 -4
  11. package/modules/gateway-admin/services/gateway-auth.service.js.map +1 -1
  12. package/modules/gateway-admin/services/gateway-path.service.d.ts +4 -1
  13. package/modules/gateway-admin/services/gateway-path.service.js +22 -8
  14. package/modules/gateway-admin/services/gateway-path.service.js.map +1 -1
  15. package/modules/gateway-admin/services/route-sync.service.js +4 -0
  16. package/modules/gateway-admin/services/route-sync.service.js.map +1 -1
  17. package/modules/gateway-admin/util/route-diff.js +7 -3
  18. package/modules/gateway-admin/util/route-diff.js.map +1 -1
  19. package/modules/gateway-admin/util/route-manifest.d.ts +2 -0
  20. package/modules/gateway-admin/util/route-manifest.js +14 -0
  21. package/modules/gateway-admin/util/route-manifest.js.map +1 -1
  22. package/modules/proxy/index.d.ts +1 -0
  23. package/modules/proxy/index.js +1 -0
  24. package/modules/proxy/index.js.map +1 -1
  25. package/modules/proxy/proxy.module.js +3 -2
  26. package/modules/proxy/proxy.module.js.map +1 -1
  27. package/modules/proxy/services/auth-provider-registry.service.d.ts +17 -0
  28. package/modules/proxy/services/auth-provider-registry.service.js +67 -0
  29. package/modules/proxy/services/auth-provider-registry.service.js.map +1 -0
  30. package/modules/proxy/services/http-auth-handler.service.d.ts +3 -2
  31. package/modules/proxy/services/http-auth-handler.service.js +8 -8
  32. package/modules/proxy/services/http-auth-handler.service.js.map +1 -1
  33. package/modules/proxy/services/http-handler.service.d.ts +3 -1
  34. package/modules/proxy/services/http-handler.service.js +21 -9
  35. package/modules/proxy/services/http-handler.service.js.map +1 -1
  36. package/modules/proxy/services/jwt.service.d.ts +2 -0
  37. package/modules/proxy/services/jwt.service.js +25 -12
  38. package/modules/proxy/services/jwt.service.js.map +1 -1
  39. package/package.json +1 -1
  40. package/schematics/nest-add/files/skills/rlb-amqp-gateway-admin/SKILL.md +41 -12
  41. package/schematics/nest-add/index.js +17 -6
  42. package/schematics/nest-add/index.js.map +1 -1
  43. package/schematics/nest-add/index.ts +14 -6
@@ -590,6 +590,13 @@ function adminPaths(controlTopic: string): string {
590
590
  dataSource: body
591
591
  topic: ${controlTopic}
592
592
  action: gw-reload
593
+ mode: event
594
+ - name: gw-auth-reload # deliberate: reload DB auth-providers into RAM (separate from gw-reload)
595
+ method: POST
596
+ path: /admin/auth/reload
597
+ dataSource: body
598
+ topic: ${controlTopic}
599
+ action: gw-auth-reload
593
600
  mode: event`;
594
601
  }
595
602
 
@@ -602,6 +609,7 @@ function buildImportStatements(sel: Resolved): string {
602
609
  if (sel.gatewayConfig) libSymbols.push('GatewayConfig', 'HandlerAuthConfig', 'ProxyModule');
603
610
  if (sel.acl) libSymbols.push('AclActionRepository', 'AclGrantRepository', 'AclModule', 'AclRoleRepository', 'AclService', 'RLB_ACL_CACHE_STORE', 'RLB_GTW_ACL_ROLE_SERVICE');
604
611
  if (sel.admin || sel.routeReception) libSymbols.push('AuthProviderRepository', 'GatewayAdminModule', 'HttpMetricRepository', 'HttpPathRepository', 'RouteSyncLogRepository');
612
+ if (sel.admin && sel.gatewayConfig) libSymbols.push('RLB_GTW_AUTH_PROVIDER_SOURCE');
605
613
  const lib = `import { ${[...new Set(libSymbols)].sort().join(', ')} } from '@open-rlb/nestjs-amqp';`;
606
614
 
607
615
  const lines = [lib, `import { ConfigModule, ConfigService } from '@nestjs/config';`, `import yamlConfig from './config/config.loader';`];
@@ -630,12 +638,12 @@ function brokerForRootAsync(): string {
630
638
  }
631
639
 
632
640
  function proxyForRootAsync(sel: Resolved): string {
633
- const providers = sel.acl
634
- ? `[
635
- // Action-gated paths resolve the caller's identity via AclService (in-process, no broker hop).
636
- { provide: RLB_GTW_ACL_ROLE_SERVICE, useExisting: AclService },
637
- ]`
638
- : `[]`;
641
+ const provs: string[] = [];
642
+ if (sel.acl) provs.push(` // Action-gated paths resolve the caller's identity via AclService (in-process, no broker hop).
643
+ { provide: RLB_GTW_ACL_ROLE_SERVICE, useExisting: AclService },`);
644
+ if (sel.admin) provs.push(` // DB auth-provider source for the runtime registry; activated by a deliberate gw-auth-reload.
645
+ { provide: RLB_GTW_AUTH_PROVIDER_SOURCE, useExisting: InMemoryAuthProviderRepository },`);
646
+ const providers = provs.length ? `[\n${provs.join('\n')}\n ]` : `[]`;
639
647
  return `ProxyModule.forRootAsync({
640
648
  imports: [ConfigModule],
641
649
  inject: [ConfigService],