@memberjunction/ng-dashboards 5.29.0 → 5.30.0

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 (90) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  2. package/dist/AI/components/agents/agent-configuration.component.js +11 -9
  3. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  4. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.js +21 -19
  6. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +154 -154
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  9. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +8 -0
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  12. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +1 -1
  13. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  14. package/dist/AI/components/vectors/vector-management-resource.component.js +2 -2
  15. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  16. package/dist/APIKeys/api-applications-panel.component.d.ts +1 -1
  17. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  18. package/dist/APIKeys/api-applications-panel.component.js +15 -2
  19. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  20. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  21. package/dist/APIKeys/api-key-edit-panel.component.js +17 -5
  22. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  23. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  24. package/dist/Credentials/components/credentials-list-resource.component.js +56 -71
  25. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  26. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -8
  27. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  28. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -74
  29. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  30. package/dist/DashboardBrowser/dashboard-share-adapter.d.ts +25 -0
  31. package/dist/DashboardBrowser/dashboard-share-adapter.d.ts.map +1 -0
  32. package/dist/DashboardBrowser/dashboard-share-adapter.js +99 -0
  33. package/dist/DashboardBrowser/dashboard-share-adapter.js.map +1 -0
  34. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +21 -104
  35. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  36. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +48 -530
  37. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  38. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +5 -0
  39. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  40. package/dist/DataExplorer/data-explorer-dashboard.component.js +17 -0
  41. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  42. package/dist/Integration/components/connections/connections.component.d.ts +18 -1
  43. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  44. package/dist/Integration/components/connections/connections.component.js +251 -199
  45. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  46. package/dist/Integration/services/integration-data.service.d.ts +7 -2
  47. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  48. package/dist/Integration/services/integration-data.service.js +10 -2
  49. package/dist/Integration/services/integration-data.service.js.map +1 -1
  50. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +144 -144
  51. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  52. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  53. package/dist/Lists/components/lists-operations-resource.component.js +12 -14
  54. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  55. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  56. package/dist/MCP/mcp-dashboard.component.js +28 -57
  57. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  58. package/dist/Permissions/audit-log-resource.component.d.ts +38 -0
  59. package/dist/Permissions/audit-log-resource.component.d.ts.map +1 -0
  60. package/dist/Permissions/audit-log-resource.component.js +380 -0
  61. package/dist/Permissions/audit-log-resource.component.js.map +1 -0
  62. package/dist/Permissions/permissions-shared.d.ts +51 -0
  63. package/dist/Permissions/permissions-shared.d.ts.map +1 -0
  64. package/dist/Permissions/permissions-shared.js +91 -0
  65. package/dist/Permissions/permissions-shared.js.map +1 -0
  66. package/dist/Permissions/resource-access-resource.component.d.ts +45 -0
  67. package/dist/Permissions/resource-access-resource.component.d.ts.map +1 -0
  68. package/dist/Permissions/resource-access-resource.component.js +342 -0
  69. package/dist/Permissions/resource-access-resource.component.js.map +1 -0
  70. package/dist/Permissions/user-access-resource.component.d.ts +39 -0
  71. package/dist/Permissions/user-access-resource.component.d.ts.map +1 -0
  72. package/dist/Permissions/user-access-resource.component.js +346 -0
  73. package/dist/Permissions/user-access-resource.component.js.map +1 -0
  74. package/dist/component-studio-dashboards.module.d.ts +1 -0
  75. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  76. package/dist/component-studio-dashboards.module.js +7 -0
  77. package/dist/component-studio-dashboards.module.js.map +1 -1
  78. package/dist/core-dashboards.module.d.ts +24 -20
  79. package/dist/core-dashboards.module.d.ts.map +1 -1
  80. package/dist/core-dashboards.module.js +26 -1
  81. package/dist/core-dashboards.module.js.map +1 -1
  82. package/dist/public-api.d.ts +4 -1
  83. package/dist/public-api.d.ts.map +1 -1
  84. package/dist/public-api.js +4 -0
  85. package/dist/public-api.js.map +1 -1
  86. package/dist/shared/pipes/highlight-search.pipe.d.ts +1 -1
  87. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
  88. package/dist/shared/pipes/highlight-search.pipe.js +14 -4
  89. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
  90. package/package.json +51 -50
@@ -2971,8 +2971,8 @@ let MCPDashboardComponent = class MCPDashboardComponent extends BaseDashboard {
2971
2971
  console.log(`[MCPDashboard] deleteConnectionInternal called for connectionId: ${connectionId}`);
2972
2972
  const rv = new RunView();
2973
2973
  const md = new Metadata();
2974
- // Delete execution logs for this connection
2975
- console.log('[MCPDashboard] Deleting execution logs...');
2974
+ const tg = await md.CreateTransactionGroup();
2975
+ // Queue deletes for execution logs
2976
2976
  const logsResult = await rv.RunView({
2977
2977
  EntityName: 'MJ: MCP Tool Execution Logs',
2978
2978
  ExtraFilter: `MCPServerConnectionID='${connectionId}'`,
@@ -2980,27 +2980,19 @@ let MCPDashboardComponent = class MCPDashboardComponent extends BaseDashboard {
2980
2980
  ResultType: 'simple'
2981
2981
  });
2982
2982
  if (logsResult.Success && logsResult.Results) {
2983
- console.log(`[MCPDashboard] Found ${logsResult.Results.length} execution logs to delete`);
2983
+ console.log(`[MCPDashboard] Queueing ${logsResult.Results.length} execution logs for delete`);
2984
2984
  for (const log of logsResult.Results) {
2985
- console.log(`[MCPDashboard] Loading execution log ${log.ID}...`);
2986
2985
  const logEntity = await md.GetEntityObject('MJ: MCP Tool Execution Logs');
2987
- const loaded = await logEntity.Load(log.ID);
2988
- console.log(`[MCPDashboard] Load result for execution log ${log.ID}: ${loaded}`);
2989
- if (loaded) {
2990
- const deleted = await logEntity.Delete();
2991
- if (!deleted) {
2992
- console.error(`[MCPDashboard] Failed to delete execution log ${log.ID}:`, logEntity.LatestResult);
2993
- throw new Error(`Failed to delete execution log: ${logEntity.LatestResult?.Message || 'Unknown error'}`);
2994
- }
2995
- console.log(`[MCPDashboard] Deleted execution log ${log.ID}`);
2986
+ if (await logEntity.Load(log.ID)) {
2987
+ logEntity.TransactionGroup = tg;
2988
+ await logEntity.Delete();
2996
2989
  }
2997
2990
  else {
2998
2991
  console.warn(`[MCPDashboard] Could not load execution log ${log.ID} - may have been already deleted`);
2999
2992
  }
3000
2993
  }
3001
2994
  }
3002
- // Delete OAuth Authorization States for this connection
3003
- console.log('[MCPDashboard] Deleting OAuth Authorization States...');
2995
+ // Queue deletes for OAuth Authorization States
3004
2996
  const authStatesResult = await rv.RunView({
3005
2997
  EntityName: 'MJ: O Auth Authorization States',
3006
2998
  ExtraFilter: `MCPServerConnectionID='${connectionId}'`,
@@ -3008,27 +3000,19 @@ let MCPDashboardComponent = class MCPDashboardComponent extends BaseDashboard {
3008
3000
  ResultType: 'simple'
3009
3001
  });
3010
3002
  if (authStatesResult.Success && authStatesResult.Results) {
3011
- console.log(`[MCPDashboard] Found ${authStatesResult.Results.length} OAuth Authorization States to delete`);
3003
+ console.log(`[MCPDashboard] Queueing ${authStatesResult.Results.length} OAuth Authorization States for delete`);
3012
3004
  for (const state of authStatesResult.Results) {
3013
- console.log(`[MCPDashboard] Loading OAuth Authorization State ${state.ID}...`);
3014
3005
  const stateEntity = await md.GetEntityObject('MJ: O Auth Authorization States');
3015
- const loaded = await stateEntity.Load(state.ID);
3016
- console.log(`[MCPDashboard] Load result for OAuth Authorization State ${state.ID}: ${loaded}`);
3017
- if (loaded) {
3018
- const deleted = await stateEntity.Delete();
3019
- if (!deleted) {
3020
- console.error(`[MCPDashboard] Failed to delete OAuth Authorization State ${state.ID}:`, stateEntity.LatestResult);
3021
- throw new Error(`Failed to delete OAuth Authorization State: ${stateEntity.LatestResult?.Message || 'Unknown error'}`);
3022
- }
3023
- console.log(`[MCPDashboard] Deleted OAuth Authorization State ${state.ID}`);
3006
+ if (await stateEntity.Load(state.ID)) {
3007
+ stateEntity.TransactionGroup = tg;
3008
+ await stateEntity.Delete();
3024
3009
  }
3025
3010
  else {
3026
3011
  console.warn(`[MCPDashboard] Could not load OAuth Authorization State ${state.ID} - may have been already deleted`);
3027
3012
  }
3028
3013
  }
3029
3014
  }
3030
- // Delete OAuth Client Registrations for this connection
3031
- console.log('[MCPDashboard] Deleting OAuth Client Registrations...');
3015
+ // Queue deletes for OAuth Client Registrations
3032
3016
  const clientRegsResult = await rv.RunView({
3033
3017
  EntityName: 'MJ: O Auth Client Registrations',
3034
3018
  ExtraFilter: `MCPServerConnectionID='${connectionId}'`,
@@ -3036,27 +3020,19 @@ let MCPDashboardComponent = class MCPDashboardComponent extends BaseDashboard {
3036
3020
  ResultType: 'simple'
3037
3021
  });
3038
3022
  if (clientRegsResult.Success && clientRegsResult.Results) {
3039
- console.log(`[MCPDashboard] Found ${clientRegsResult.Results.length} OAuth Client Registrations to delete`);
3023
+ console.log(`[MCPDashboard] Queueing ${clientRegsResult.Results.length} OAuth Client Registrations for delete`);
3040
3024
  for (const reg of clientRegsResult.Results) {
3041
- console.log(`[MCPDashboard] Loading OAuth Client Registration ${reg.ID}...`);
3042
3025
  const regEntity = await md.GetEntityObject('MJ: O Auth Client Registrations');
3043
- const loaded = await regEntity.Load(reg.ID);
3044
- console.log(`[MCPDashboard] Load result for OAuth Client Registration ${reg.ID}: ${loaded}`);
3045
- if (loaded) {
3046
- const deleted = await regEntity.Delete();
3047
- if (!deleted) {
3048
- console.error(`[MCPDashboard] Failed to delete OAuth Client Registration ${reg.ID}:`, regEntity.LatestResult);
3049
- throw new Error(`Failed to delete OAuth Client Registration: ${regEntity.LatestResult?.Message || 'Unknown error'}`);
3050
- }
3051
- console.log(`[MCPDashboard] Deleted OAuth Client Registration ${reg.ID}`);
3026
+ if (await regEntity.Load(reg.ID)) {
3027
+ regEntity.TransactionGroup = tg;
3028
+ await regEntity.Delete();
3052
3029
  }
3053
3030
  else {
3054
3031
  console.warn(`[MCPDashboard] Could not load OAuth Client Registration ${reg.ID} - may have been already deleted`);
3055
3032
  }
3056
3033
  }
3057
3034
  }
3058
- // Delete OAuth Tokens for this connection
3059
- console.log('[MCPDashboard] Deleting OAuth Tokens...');
3035
+ // Queue deletes for OAuth Tokens
3060
3036
  const tokensResult = await rv.RunView({
3061
3037
  EntityName: 'MJ: O Auth Tokens',
3062
3038
  ExtraFilter: `MCPServerConnectionID='${connectionId}'`,
@@ -3064,37 +3040,32 @@ let MCPDashboardComponent = class MCPDashboardComponent extends BaseDashboard {
3064
3040
  ResultType: 'simple'
3065
3041
  });
3066
3042
  if (tokensResult.Success && tokensResult.Results) {
3067
- console.log(`[MCPDashboard] Found ${tokensResult.Results.length} OAuth Tokens to delete`);
3043
+ console.log(`[MCPDashboard] Queueing ${tokensResult.Results.length} OAuth Tokens for delete`);
3068
3044
  for (const token of tokensResult.Results) {
3069
- console.log(`[MCPDashboard] Loading OAuth Token ${token.ID}...`);
3070
3045
  const tokenEntity = await md.GetEntityObject('MJ: O Auth Tokens');
3071
- const loaded = await tokenEntity.Load(token.ID);
3072
- console.log(`[MCPDashboard] Load result for OAuth Token ${token.ID}: ${loaded}`);
3073
- if (loaded) {
3074
- const deleted = await tokenEntity.Delete();
3075
- if (!deleted) {
3076
- console.error(`[MCPDashboard] Failed to delete OAuth Token ${token.ID}:`, tokenEntity.LatestResult);
3077
- throw new Error(`Failed to delete OAuth Token: ${tokenEntity.LatestResult?.Message || 'Unknown error'}`);
3078
- }
3079
- console.log(`[MCPDashboard] Deleted OAuth Token ${token.ID}`);
3046
+ if (await tokenEntity.Load(token.ID)) {
3047
+ tokenEntity.TransactionGroup = tg;
3048
+ await tokenEntity.Delete();
3080
3049
  }
3081
3050
  else {
3082
3051
  console.warn(`[MCPDashboard] Could not load OAuth Token ${token.ID} - may have been already deleted`);
3083
3052
  }
3084
3053
  }
3085
3054
  }
3086
- // Now delete the connection itself
3087
- console.log('[MCPDashboard] All related records deleted. Now deleting the connection itself...');
3055
+ // Queue the connection delete last
3088
3056
  const entity = await md.GetEntityObject('MJ: MCP Server Connections');
3089
3057
  const loaded = await entity.Load(connectionId);
3090
3058
  if (!loaded) {
3091
3059
  throw new Error(`Connection not found`);
3092
3060
  }
3093
- const deleted = await entity.Delete();
3094
- if (!deleted) {
3061
+ entity.TransactionGroup = tg;
3062
+ await entity.Delete();
3063
+ // Submit everything atomically — if anything fails, the whole cascade rolls back
3064
+ if (!await tg.Submit()) {
3095
3065
  const errorMsg = entity.LatestResult?.Message || entity.LatestResult?.CompleteMessage || 'Delete failed';
3096
- throw new Error(errorMsg);
3066
+ throw new Error(`Failed to delete connection and related records: ${errorMsg}`);
3097
3067
  }
3068
+ console.log('[MCPDashboard] Connection and all related records deleted atomically');
3098
3069
  }
3099
3070
  async onServerDialogClose(result) {
3100
3071
  this.ShowServerDialog = false;