nucleus-core-ts 0.9.866 → 0.9.868
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.
- package/dist/fe/components/IntegrationsPage/components/ConnectionTest.js +11 -1
- package/dist/fe/components/IntegrationsPage/components/EndpointSample.js +24 -0
- package/dist/fe/components/IntegrationsPage/components/EndpointsTab.js +15 -2
- package/dist/fe/components/IntegrationsPage/store/index.js +19 -0
- package/dist/index.js +2 -2
- package/dist/src/ElysiaPlugin/schemaReconcile.d.ts +137 -0
- package/package.json +1 -1
- package/scripts/build.ts +71 -3
- package/dist/fe/components/IntegrationsPage/components/RunPlanIssues.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/RunPlanIssues.test.js +0 -44
- package/dist/fe/components/IntegrationsPage/components/RunPlanSuggestions.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/RunPlanSuggestions.test.js +0 -103
- package/dist/fe/components/IntegrationsPage/components/connectionDraft.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/connectionDraft.test.js +0 -198
- package/dist/fe/components/IntegrationsPage/components/credentialSlots.contract.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/credentialSlots.contract.test.js +0 -140
- package/dist/fe/components/IntegrationsPage/components/deleteIsConfirmed.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/deleteIsConfirmed.test.js +0 -29
- package/dist/fe/components/IntegrationsPage/components/formSupport.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/formSupport.test.js +0 -156
- package/dist/fe/components/IntegrationsPage/components/jsonObjectField.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/jsonObjectField.test.js +0 -86
- package/dist/fe/components/IntegrationsPage/components/mappingDraft.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/mappingDraft.test.js +0 -59
- package/dist/fe/components/IntegrationsPage/components/passwordIsNeeded.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/passwordIsNeeded.test.js +0 -45
- package/dist/fe/components/IntegrationsPage/components/runFormat.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/runFormat.test.js +0 -47
- package/dist/fe/components/IntegrationsPage/components/settleOwnership.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/components/settleOwnership.test.js +0 -56
- package/dist/fe/components/IntegrationsPage/store/upsertInto.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/store/upsertInto.test.js +0 -67
- package/dist/fe/components/IntegrationsPage/text/text.test.d.ts +0 -1
- package/dist/fe/components/IntegrationsPage/text/text.test.js +0 -67
- package/dist/src/Client/Proxy/authz.test.d.ts +0 -1
- package/dist/src/Client/Proxy/authz.test.js +0 -453
- package/dist/src/Client/Proxy/httpProxy.test.d.ts +0 -1
- package/dist/src/Client/Proxy/httpProxy.test.js +0 -73
- package/dist/src/ElysiaPlugin/auditAttribution.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/authRouteClassifier.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/dbPoolConfig.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/publicRoutes.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/redactSensitiveOutput.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/resolveConfigCredential.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/accountState.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/admin/createUserAuthz.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/admin/resolveMutationSchema.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/captchaWiring.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/emailLinks/emailLinks.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/emailWiring.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/login/deviceInfo.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/magicLink/utils.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/oauth/absolutizeRedirect.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/oauth/oauthStateCookie.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/oauth/resolveSafeOAuthRedirect.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/auth/sessions/adminRoutes.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/authorization/discovery.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/chat/moderation.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/config/helpers.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/domain/hostnames.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/entity/anonymousCreate.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/entity/createScope.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/entity/filterFields.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/entity/relationAuthz.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/monitoring/index.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/monitoring/serverLogs.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/payment/marketplace/authz.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/payment/paymentAuthz.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/payment/validation.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/pubsub/daprAuth.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/pubsub/frame.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/pubsub/topicCap.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/adminGuard.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/basePathCollision.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/clientIp.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/csrf.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/redact.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/requestLimits.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/sensitiveColumns.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/sensitiveTables.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/systemSensitiveColumns.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/tenantBinding.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/shared/writeLock.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/storage/cdn.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/storage/helpers.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/storage/imageTransform.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/routes/storage/videoTransform.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/runtime.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/sanitizePayload.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/signNewAccessToken.test.d.ts +0 -1
- package/dist/src/ElysiaPlugin/validationError.test.d.ts +0 -1
- package/dist/src/Managers/Redis/keyPrefix.test.d.ts +0 -1
- package/dist/src/Managers/Storage/liveStorage.test.d.ts +0 -1
- package/dist/src/Managers/Storage/migrate.test.d.ts +0 -1
- package/dist/src/Managers/Storage/parseSmbUrl.test.d.ts +0 -1
- package/dist/src/Managers/Storage/storage.test.d.ts +0 -1
- package/dist/src/Services/Auth/DeviceTrust/deviceToken.test.d.ts +0 -1
- package/dist/src/Services/Auth/JWT/jwt.test.d.ts +0 -1
- package/dist/src/Services/Auth/Password/password.test.d.ts +0 -1
- package/dist/src/Services/Authorization/ClaimGuard/claimGuard.test.d.ts +0 -1
- package/dist/src/Services/Authorization/EndpointDiscovery/discovery.test.d.ts +0 -1
- package/dist/src/Services/Authorization/EndpointDiscovery/seed.test.d.ts +0 -1
- package/dist/src/Services/Authorization/Middleware/broaderGrantWins.test.d.ts +0 -1
- package/dist/src/Services/Authorization/Middleware/claimMatches.test.d.ts +0 -1
- package/dist/src/Services/Authorization/Middleware/fieldRelationGrant.test.d.ts +0 -1
- package/dist/src/Services/Authorization/Middleware/fieldWriteClaims.test.d.ts +0 -1
- package/dist/src/Services/Authorization/Middleware/jwtScopeEmbed.test.d.ts +0 -1
- package/dist/src/Services/Authorization/Middleware/scopeFailClosed.test.d.ts +0 -1
- package/dist/src/Services/Authorization/Middleware/scopeSelfFailClosed.test.d.ts +0 -1
- package/dist/src/Services/Authorization/SeedRunner/expandClaimPatterns.test.d.ts +0 -1
- package/dist/src/Services/Authorization/SeedRunner/scopeReconcile.test.d.ts +0 -1
- package/dist/src/Services/Backup/encryption.test.d.ts +0 -1
- package/dist/src/Services/Captcha/captchaAtomic.test.d.ts +0 -1
- package/dist/src/Services/Chat/sendMessageAtomicity.integration.test.d.ts +0 -1
- package/dist/src/Services/Integrations/bindings.test.d.ts +0 -1
- package/dist/src/Services/Integrations/collect.test.d.ts +0 -1
- package/dist/src/Services/Integrations/fetcher.test.d.ts +0 -1
- package/dist/src/Services/Integrations/lock.test.d.ts +0 -1
- package/dist/src/Services/Integrations/mapping.test.d.ts +0 -1
- package/dist/src/Services/Integrations/oauth.test.d.ts +0 -1
- package/dist/src/Services/Integrations/pagination.test.d.ts +0 -1
- package/dist/src/Services/Integrations/plan.test.d.ts +0 -1
- package/dist/src/Services/Integrations/referenceIds.test.d.ts +0 -1
- package/dist/src/Services/Integrations/revert.test.d.ts +0 -1
- package/dist/src/Services/Integrations/runner.test.d.ts +0 -1
- package/dist/src/Services/Integrations/scheduler.test.d.ts +0 -1
- package/dist/src/Services/Integrations/transfer.test.d.ts +0 -1
- package/dist/src/Services/Integrations/tree.test.d.ts +0 -1
- package/dist/src/Services/Integrations/writer.test.d.ts +0 -1
- package/dist/src/Services/Logger/ServerLogBuffer.test.d.ts +0 -1
- package/dist/src/Services/Logger/auditDedup.test.d.ts +0 -1
- package/dist/src/Services/Logger/auditGate.test.d.ts +0 -1
- package/dist/src/Services/Logger/auditRedact.test.d.ts +0 -1
- package/dist/src/Services/Logger/auditTaxonomy.test.d.ts +0 -1
- package/dist/src/Services/Logger/formatError.test.d.ts +0 -1
- package/dist/src/Services/Logger/redact.test.d.ts +0 -1
- package/dist/src/Services/Monitoring/collectors/memory.test.d.ts +0 -1
- package/dist/src/Services/OAuth/profileSync.test.d.ts +0 -1
- package/dist/src/Services/OAuth/providers/microsoft.test.d.ts +0 -1
- package/dist/src/Services/OAuth/stateStore.test.d.ts +0 -1
- package/dist/src/Services/Payment/Marketplace/marketplaceLedger.test.d.ts +0 -1
- package/dist/src/Services/Payment/Marketplace/marketplacePayout.integration.test.d.ts +0 -1
- package/dist/src/Services/RateLimiter/rateLimiter.integration.test.d.ts +0 -1
- package/dist/src/Services/RateLimiter/rateLimiter.test.d.ts +0 -1
- package/dist/src/Services/SchemaTables/resolveEntities.test.d.ts +0 -1
- package/dist/src/Services/Secrets/SecretsService.test.d.ts +0 -1
- package/dist/src/Services/Secrets/connectionTest.test.d.ts +0 -1
- package/dist/src/Services/Secrets/crypto.test.d.ts +0 -1
- package/dist/src/Services/Secrets/registry.test.d.ts +0 -1
- package/dist/src/Services/Secrets/store.test.d.ts +0 -1
- package/dist/src/Services/Tenant/helpers.test.d.ts +0 -1
- package/dist/src/Services/Tenant/isTrustedSource.test.d.ts +0 -1
- package/dist/src/Services/Tenant/schema.test.d.ts +0 -1
- package/dist/src/Services/WebAuthn/webauthnChallenge.integration.test.d.ts +0 -1
- package/dist/src/Shared/cron.test.d.ts +0 -1
- package/dist/src/Shared/cron.test.js +0 -223
- package/dist/src/Utils/cron.test.d.ts +0 -1
- package/dist/src/Utils/headerList.test.d.ts +0 -1
- package/dist/src/Utils/withDeadline.test.d.ts +0 -1
|
@@ -32,6 +32,13 @@ export function ConnectionTest({ actions, source, loading = false }) {
|
|
|
32
32
|
* the record object is replaced but its id is not, so this never re-ran and a
|
|
33
33
|
* green badge sat under an address that had never been called. Everything the
|
|
34
34
|
* test actually depends on is in the key.
|
|
35
|
+
*
|
|
36
|
+
* A stored CREDENTIAL is such a setting, and it was the one left out. Clearing
|
|
37
|
+
* a token left the green verdict standing for a connection that would now be
|
|
38
|
+
* refused; the mirror image costs more of an afternoon — a red "Not reachable"
|
|
39
|
+
* from a 401 stayed up after the right password was saved, reading as "the
|
|
40
|
+
* password did not help". The masked hints are what move when a credential
|
|
41
|
+
* does, so they are what this watches.
|
|
35
42
|
*/ useEffect(()=>{
|
|
36
43
|
clear();
|
|
37
44
|
}, [
|
|
@@ -39,7 +46,10 @@ export function ConnectionTest({ actions, source, loading = false }) {
|
|
|
39
46
|
source?.baseUrl,
|
|
40
47
|
source?.authType,
|
|
41
48
|
source?.tokenUrl,
|
|
42
|
-
source?.tlsVerify
|
|
49
|
+
source?.tlsVerify,
|
|
50
|
+
source?.authTokenHint,
|
|
51
|
+
source?.oauthClientSecretHint,
|
|
52
|
+
source?.oauthPasswordHint
|
|
43
53
|
]);
|
|
44
54
|
const handleTest = ()=>{
|
|
45
55
|
if (!source) return;
|
|
@@ -69,6 +69,30 @@ export function EndpointSample({ endpoint, actions }) {
|
|
|
69
69
|
actions.sampleEndpoint(requestedFor, params.length > 0 ? values : undefined).then((result)=>{
|
|
70
70
|
if (settleElsewhere(mine, requestedFor)) return;
|
|
71
71
|
store.setSample(result, requestedFor);
|
|
72
|
+
/**
|
|
73
|
+
* The ROW learns it has been tried, not just this card.
|
|
74
|
+
*
|
|
75
|
+
* The step strip counts "tried" off `endpoints[].sampleResponse`,
|
|
76
|
+
* because whether a call has ever been run is a fact about the call and
|
|
77
|
+
* not about whichever screen is open. The server stores it there. This
|
|
78
|
+
* panel never did, so a connection whose calls had all been sampled
|
|
79
|
+
* went on announcing "7 call(s), 0 tried" — seen exactly that way on a
|
|
80
|
+
* customer's live connection, where it read as "nobody has ever tried
|
|
81
|
+
* these", which was not true.
|
|
82
|
+
*
|
|
83
|
+
* Only a sample that actually returned records counts, which is the
|
|
84
|
+
* same rule the strip applies.
|
|
85
|
+
*/ if (result.ok && result.recordCount > 0) {
|
|
86
|
+
const row = store.endpoints.find((candidate)=>candidate.id === requestedFor);
|
|
87
|
+
if (row) {
|
|
88
|
+
store.upsertEndpoint({
|
|
89
|
+
...row,
|
|
90
|
+
sampleResponse: {
|
|
91
|
+
records: result.sample
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
72
96
|
if (!result.ok && result.error) store.setError(result.error);
|
|
73
97
|
}).catch((error)=>{
|
|
74
98
|
if (settleElsewhere(mine, requestedFor)) return;
|
|
@@ -56,9 +56,22 @@ export function EndpointsTab({ actions }) {
|
|
|
56
56
|
// selecting an id the list has not fetched yet made the whole editor
|
|
57
57
|
// collapse to "pick one" — with the form still half-filled a moment ago.
|
|
58
58
|
store.upsertEndpoint(saved);
|
|
59
|
-
// Re-selecting drops the old sample: it described the call as it was
|
|
60
|
-
// configured a moment ago, and the mapping would be built from it.
|
|
61
59
|
store.selectEndpoint(saved.id);
|
|
60
|
+
/**
|
|
61
|
+
* The sample described the call as it was BEFORE this save.
|
|
62
|
+
*
|
|
63
|
+
* Re-selecting was supposed to drop it, and does not: `selectEndpoint`
|
|
64
|
+
* returns early when the id has not changed, which on a save it never has —
|
|
65
|
+
* it is the guard that stops re-choosing the open call from throwing away a
|
|
66
|
+
* sample somebody just paid a real request for. Correct there, and the
|
|
67
|
+
* reason nothing was cleared here.
|
|
68
|
+
*
|
|
69
|
+
* So the sample sat under an edited call: change `responseRootPath` from
|
|
70
|
+
* empty to `data`, save, and the card still reports "Status 200, 0 records"
|
|
71
|
+
* with the old body keys — and the mapping's field list is built from those
|
|
72
|
+
* keys. The answer on screen belonged to a request that is no longer the one
|
|
73
|
+
* configured.
|
|
74
|
+
*/ store.setSample(null, null);
|
|
62
75
|
setReloadToken((token)=>token + 1);
|
|
63
76
|
};
|
|
64
77
|
const handleDeleted = (deletedId)=>{
|
|
@@ -93,6 +93,25 @@ export const { useStore: useIntegrationsStore } = createStore(initial, {
|
|
|
93
93
|
store.endpointsTotal = Math.max(0, store.endpointsTotal - 1);
|
|
94
94
|
store.endpoints = kept;
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* A mapping cannot outlive the call it reads from.
|
|
98
|
+
*
|
|
99
|
+
* The server deletes them — the foreign key cascades — and this list did
|
|
100
|
+
* not, so the step strip went on counting mappings that no longer existed
|
|
101
|
+
* and the IMPORT step stayed unlocked by them. Pressing it landed on an
|
|
102
|
+
* import whose mapping the server had already removed.
|
|
103
|
+
*
|
|
104
|
+
* Filtered here rather than at the call site because the store is what
|
|
105
|
+
* every one of those readings comes from; a caller that forgot would put
|
|
106
|
+
* the same ghost back.
|
|
107
|
+
*/ const survivors = store.mappings.filter((mapping)=>mapping.endpointId !== id);
|
|
108
|
+
if (survivors.length !== store.mappings.length) {
|
|
109
|
+
store.mappingsTotal = Math.max(0, store.mappingsTotal - (store.mappings.length - survivors.length));
|
|
110
|
+
store.mappings = survivors;
|
|
111
|
+
if (store.selectedMappingId && !survivors.some((m)=>m.id === store.selectedMappingId)) {
|
|
112
|
+
store.selectedMappingId = null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
96
115
|
}),
|
|
97
116
|
setEndpointsSearch: (store)=>(search)=>batch(()=>{
|
|
98
117
|
store.endpointsSearch = search;
|