@epilot/erp-integration-client 0.25.0 → 0.26.1

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(pnpm install:*)"
5
+ ]
6
+ }
7
+ }
@@ -1 +1 @@
1
- (()=>{"use strict";var e={390:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(466));t.default=o.default},466:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"servers":[{"url":"https://erp-integration-api.sls.epilot.io"}],"paths":{"/v1/erp/tracking/acknowledgement":{"post":{"operationId":"acknowledgeTracking","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/erp/trigger":{"post":{"operationId":"triggerErp","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/erp/updates/events":{"post":{"deprecated":true,"operationId":"processErpUpdatesEvents","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/erp/updates/events":{"post":{"deprecated":true,"operationId":"processErpUpdatesEventsV2","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v3/erp/updates/events":{"post":{"operationId":"processErpUpdatesEventsV3","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/erp/updates/mapping_simulation":{"post":{"operationId":"simulateMappingV2","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/erp/updates/mapping_simulation":{"post":{"operationId":"simulateMapping","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations":{"get":{"operationId":"listIntegrations","responses":{}},"post":{"operationId":"createIntegration","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}":{"get":{"operationId":"getIntegration","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}},"put":{"operationId":"updateIntegration","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteIntegration","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/events":{"post":{"operationId":"queryEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/events/replay":{"post":{"operationId":"replayEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/use-cases":{"get":{"operationId":"listUseCases","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}},"post":{"operationId":"createUseCase","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/use-cases/{useCaseId}":{"get":{"operationId":"getUseCase","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true}],"responses":{}},"put":{"operationId":"updateUseCase","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteUseCase","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/use-cases/{useCaseId}/history":{"get":{"operationId":"listUseCaseHistory","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true},{"name":"cursor","in":"query","required":false}],"responses":{}}},"/v2/integrations":{"get":{"operationId":"listIntegrationsV2","responses":{}},"post":{"operationId":"createIntegrationV2","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v2/integrations/{integrationId}":{"get":{"operationId":"getIntegrationV2","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}},"put":{"operationId":"updateIntegrationV2","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteIntegrationV2","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/app-mapping":{"put":{"operationId":"setIntegrationAppMapping","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteIntegrationAppMapping","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/inbound-events":{"post":{"operationId":"queryInboundMonitoringEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/stats":{"post":{"operationId":"getMonitoringStats","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/timeseries":{"post":{"operationId":"getMonitoringTimeSeries","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/outbound-status":{"get":{"operationId":"getOutboundStatus","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/monitoring/access-logs":{"post":{"operationId":"queryAccessLogs","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/outbound-events":{"post":{"operationId":"queryOutboundMonitoringEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}}},"components":{"responses":{"BadRequest":{"content":{"application/json":{}}},"NotFound":{"content":{"application/json":{}}},"Unauthorized":{"content":{"application/json":{}}},"InternalServerError":{"content":{"application/json":{}}},"QueryInboundMonitoringEventsResponse":{"content":{"application/json":{}}},"GetMonitoringStatsResponse":{"content":{"application/json":{}}},"GetMonitoringTimeSeriesResponse":{"content":{"application/json":{}}},"QueryAccessLogsResponse":{"content":{"application/json":{}}},"QueryOutboundMonitoringEventsResponse":{"content":{"application/json":{}}},"ReplayEventsResponse":{"content":{"application/json":{}}},"ERPUpdatesResponse":{"content":{"application/json":{}}},"TriggerWebhookResponse":{"content":{"application/json":{}}},"QueryEventsResponse":{"content":{"application/json":{}}}}}}')}},t={},n=function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}(390),r=exports;for(var o in n)r[o]=n[o];n.__esModule&&Object.defineProperty(r,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var e={330(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(466));t.default=o.default},466(e){e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"servers":[{"url":"https://erp-integration-api.sls.epilot.io"}],"paths":{"/v1/erp/tracking/acknowledgement":{"post":{"operationId":"acknowledgeTracking","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/erp/trigger":{"post":{"operationId":"triggerErp","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/erp/updates/events":{"post":{"deprecated":true,"operationId":"processErpUpdatesEvents","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/erp/updates/events":{"post":{"deprecated":true,"operationId":"processErpUpdatesEventsV2","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v3/erp/updates/events":{"post":{"operationId":"processErpUpdatesEventsV3","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/erp/updates/mapping_simulation":{"post":{"operationId":"simulateMappingV2","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/erp/updates/mapping_simulation":{"post":{"operationId":"simulateMapping","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations":{"get":{"operationId":"listIntegrations","responses":{}},"post":{"operationId":"createIntegration","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}":{"get":{"operationId":"getIntegration","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}},"put":{"operationId":"updateIntegration","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteIntegration","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/events":{"post":{"operationId":"queryEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/events/replay":{"post":{"operationId":"replayEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/use-cases":{"get":{"operationId":"listUseCases","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}},"post":{"operationId":"createUseCase","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/use-cases/{useCaseId}":{"get":{"operationId":"getUseCase","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true}],"responses":{}},"put":{"operationId":"updateUseCase","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteUseCase","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/use-cases/{useCaseId}/history":{"get":{"operationId":"listUseCaseHistory","parameters":[{"name":"integrationId","in":"path","required":true},{"name":"useCaseId","in":"path","required":true},{"name":"cursor","in":"query","required":false}],"responses":{}}},"/v2/integrations":{"get":{"operationId":"listIntegrationsV2","responses":{}},"post":{"operationId":"createIntegrationV2","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v2/integrations/{integrationId}":{"get":{"operationId":"getIntegrationV2","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}},"put":{"operationId":"updateIntegrationV2","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteIntegrationV2","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/app-mapping":{"put":{"operationId":"setIntegrationAppMapping","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteIntegrationAppMapping","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/inbound-events":{"post":{"operationId":"queryInboundMonitoringEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/stats":{"post":{"operationId":"getMonitoringStats","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/timeseries":{"post":{"operationId":"getMonitoringTimeSeries","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/outbound-status":{"get":{"operationId":"getOutboundStatus","parameters":[{"name":"integrationId","in":"path","required":true}],"responses":{}}},"/v1/integrations/{integrationId}/monitoring/access-logs":{"post":{"operationId":"queryAccessLogs","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/integrations/{integrationId}/monitoring/outbound-events":{"post":{"operationId":"queryOutboundMonitoringEvents","parameters":[{"name":"integrationId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}}},"components":{"responses":{"BadRequest":{"content":{"application/json":{}}},"NotFound":{"content":{"application/json":{}}},"Unauthorized":{"content":{"application/json":{}}},"InternalServerError":{"content":{"application/json":{}}},"QueryInboundMonitoringEventsResponse":{"content":{"application/json":{}}},"GetMonitoringStatsResponse":{"content":{"application/json":{}}},"GetMonitoringTimeSeriesResponse":{"content":{"application/json":{}}},"QueryAccessLogsResponse":{"content":{"application/json":{}}},"QueryOutboundMonitoringEventsResponse":{"content":{"application/json":{}}},"ReplayEventsResponse":{"content":{"application/json":{}}},"ERPUpdatesResponse":{"content":{"application/json":{}}},"TriggerWebhookResponse":{"content":{"application/json":{}}},"QueryEventsResponse":{"content":{"application/json":{}}}}}}')}},t={},n=function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}(330),r=exports;for(var o in n)r[o]=n[o];n.__esModule&&Object.defineProperty(r,"__esModule",{value:!0})})();
package/dist/openapi.d.ts CHANGED
@@ -199,10 +199,6 @@ declare namespace Components {
199
199
  * Maximum age (in minutes) of data before it is considered stale and eligible for refresh
200
200
  */
201
201
  freshnessThresholdMinutes?: number;
202
- /**
203
- * Minimum interval (in minutes) between consecutive sync operations to prevent excessive API calls
204
- */
205
- minIntervalBetweenSyncsMinutes?: number;
206
202
  }
207
203
  export interface CreateFileProxyUseCaseRequest {
208
204
  /**
@@ -617,6 +613,40 @@ declare namespace Components {
617
613
  */
618
614
  response_type: "json" | "binary";
619
615
  }
616
+ /**
617
+ * Auto-constructs a file proxy download URL. orgId and integrationId are injected from context.
618
+ */
619
+ export interface FileProxyUrlConfig {
620
+ /**
621
+ * UUID of the file_proxy use case. Maps to useCaseId query parameter.
622
+ */
623
+ use_case_id: string;
624
+ /**
625
+ * Custom query parameters. Keys become URL param names, values resolved from payload.
626
+ */
627
+ params?: {
628
+ [name: string]: /* Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set. */ FileProxyUrlParam;
629
+ };
630
+ }
631
+ /**
632
+ * Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set.
633
+ */
634
+ export type FileProxyUrlParam = /* Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set. */ {
635
+ /**
636
+ * Source field name or JSONPath expression (if starts with $)
637
+ */
638
+ field: string;
639
+ } | {
640
+ /**
641
+ * Constant value (any type, stringified for URL)
642
+ */
643
+ constant: any;
644
+ } | {
645
+ /**
646
+ * JSONata expression for transformation
647
+ */
648
+ jsonataExpression: string;
649
+ };
620
650
  export interface FileProxyUseCase {
621
651
  /**
622
652
  * Unique identifier for the use case
@@ -667,7 +697,7 @@ declare namespace Components {
667
697
  */
668
698
  export interface FileProxyUseCaseConfiguration {
669
699
  /**
670
- * Whether requests require VPC routing for IP allowlisting
700
+ * Whether requests require VPC routing for IP allowlisting. Read-only after creation — can only be modified directly in DynamoDB.
671
701
  */
672
702
  requires_vpc?: boolean;
673
703
  auth?: FileProxyAuth;
@@ -1116,6 +1146,7 @@ declare namespace Components {
1116
1146
  *
1117
1147
  */
1118
1148
  RelationRefsConfig;
1149
+ file_proxy_url?: /* Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. */ FileProxyUrlConfig;
1119
1150
  }
1120
1151
  export interface IntegrationFieldV1 {
1121
1152
  /**
@@ -1261,6 +1292,10 @@ declare namespace Components {
1261
1292
  export interface MappingSimulationResponse {
1262
1293
  entity_updates: EntityUpdate[];
1263
1294
  meter_readings_updates?: MeterReadingUpdate[];
1295
+ /**
1296
+ * Validation warnings about the configuration (e.g., unique_ids referencing non-indexed fields)
1297
+ */
1298
+ warnings?: MappingSimulationWarning[];
1264
1299
  }
1265
1300
  /**
1266
1301
  * Request for v2 mapping simulation. Uses the same configuration format stored in integration use case resources,
@@ -1280,6 +1315,20 @@ declare namespace Components {
1280
1315
  [name: string]: any;
1281
1316
  };
1282
1317
  }
1318
+ export interface MappingSimulationWarning {
1319
+ /**
1320
+ * The entity schema slug where the issue was found
1321
+ */
1322
+ entity_schema: string;
1323
+ /**
1324
+ * The field name that caused the warning
1325
+ */
1326
+ field: string;
1327
+ /**
1328
+ * Description of the validation issue
1329
+ */
1330
+ message: string;
1331
+ }
1283
1332
  /**
1284
1333
  * Scope configuration for meter reading upsert-prune-scope mode.
1285
1334
  * The scope is all readings for the same meter + counter.
@@ -3819,6 +3868,8 @@ export type FileProxyAuth = Components.Schemas.FileProxyAuth;
3819
3868
  export type FileProxyParam = Components.Schemas.FileProxyParam;
3820
3869
  export type FileProxyResponseConfig = Components.Schemas.FileProxyResponseConfig;
3821
3870
  export type FileProxyStep = Components.Schemas.FileProxyStep;
3871
+ export type FileProxyUrlConfig = Components.Schemas.FileProxyUrlConfig;
3872
+ export type FileProxyUrlParam = Components.Schemas.FileProxyUrlParam;
3822
3873
  export type FileProxyUseCase = Components.Schemas.FileProxyUseCase;
3823
3874
  export type FileProxyUseCaseConfiguration = Components.Schemas.FileProxyUseCaseConfiguration;
3824
3875
  export type FileProxyUseCaseHistoryEntry = Components.Schemas.FileProxyUseCaseHistoryEntry;
@@ -3843,6 +3894,7 @@ export type IntegrationWithUseCases = Components.Schemas.IntegrationWithUseCases
3843
3894
  export type MappingSimulationRequest = Components.Schemas.MappingSimulationRequest;
3844
3895
  export type MappingSimulationResponse = Components.Schemas.MappingSimulationResponse;
3845
3896
  export type MappingSimulationV2Request = Components.Schemas.MappingSimulationV2Request;
3897
+ export type MappingSimulationWarning = Components.Schemas.MappingSimulationWarning;
3846
3898
  export type MeterReadingPruneScopeConfig = Components.Schemas.MeterReadingPruneScopeConfig;
3847
3899
  export type MeterReadingUpdate = Components.Schemas.MeterReadingUpdate;
3848
3900
  export type MeterUniqueIdsConfig = Components.Schemas.MeterUniqueIdsConfig;
package/dist/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "ERP Integration API",
5
- "version": "0.40.0",
5
+ "version": "0.43.0",
6
6
  "description": "API for integrating with ERP systems, handling tracking acknowledgments, triggering ERP processes, and processing ERP updates."
7
7
  },
8
8
  "tags": [
@@ -2314,10 +2314,12 @@
2314
2314
  "oneOf": [
2315
2315
  {
2316
2316
  "type": "string",
2317
+ "minLength": 2,
2317
2318
  "description": "The serialized object data payload (JSON, XML, etc.) as a string"
2318
2319
  },
2319
2320
  {
2320
2321
  "type": "object",
2322
+ "minProperties": 1,
2321
2323
  "description": "Direct JSON object (will be automatically serialized)",
2322
2324
  "additionalProperties": true
2323
2325
  }
@@ -2390,10 +2392,12 @@
2390
2392
  "oneOf": [
2391
2393
  {
2392
2394
  "type": "string",
2395
+ "minLength": 2,
2393
2396
  "description": "The serialized object data payload (JSON, XML, etc.) as a string"
2394
2397
  },
2395
2398
  {
2396
2399
  "type": "object",
2400
+ "minProperties": 1,
2397
2401
  "description": "Direct JSON object (will be automatically serialized)",
2398
2402
  "additionalProperties": true
2399
2403
  }
@@ -2690,11 +2694,6 @@
2690
2694
  "type": "integer",
2691
2695
  "minimum": 1,
2692
2696
  "description": "Maximum age (in minutes) of data before it is considered stale and eligible for refresh"
2693
- },
2694
- "minIntervalBetweenSyncsMinutes": {
2695
- "type": "integer",
2696
- "minimum": 1,
2697
- "description": "Minimum interval (in minutes) between consecutive sync operations to prevent excessive API calls"
2698
2697
  }
2699
2698
  }
2700
2699
  },
@@ -3050,6 +3049,69 @@
3050
3049
  },
3051
3050
  "relation_refs": {
3052
3051
  "$ref": "#/components/schemas/RelationRefsConfig"
3052
+ },
3053
+ "file_proxy_url": {
3054
+ "$ref": "#/components/schemas/FileProxyUrlConfig"
3055
+ }
3056
+ }
3057
+ },
3058
+ "FileProxyUrlParam": {
3059
+ "description": "Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set.",
3060
+ "oneOf": [
3061
+ {
3062
+ "type": "object",
3063
+ "required": [
3064
+ "field"
3065
+ ],
3066
+ "properties": {
3067
+ "field": {
3068
+ "type": "string",
3069
+ "description": "Source field name or JSONPath expression (if starts with $)"
3070
+ }
3071
+ }
3072
+ },
3073
+ {
3074
+ "type": "object",
3075
+ "required": [
3076
+ "constant"
3077
+ ],
3078
+ "properties": {
3079
+ "constant": {
3080
+ "description": "Constant value (any type, stringified for URL)"
3081
+ }
3082
+ }
3083
+ },
3084
+ {
3085
+ "type": "object",
3086
+ "required": [
3087
+ "jsonataExpression"
3088
+ ],
3089
+ "properties": {
3090
+ "jsonataExpression": {
3091
+ "type": "string",
3092
+ "description": "JSONata expression for transformation"
3093
+ }
3094
+ }
3095
+ }
3096
+ ]
3097
+ },
3098
+ "FileProxyUrlConfig": {
3099
+ "type": "object",
3100
+ "required": [
3101
+ "use_case_id"
3102
+ ],
3103
+ "description": "Auto-constructs a file proxy download URL. orgId and integrationId are injected from context.",
3104
+ "properties": {
3105
+ "use_case_id": {
3106
+ "type": "string",
3107
+ "description": "UUID of the file_proxy use case. Maps to useCaseId query parameter."
3108
+ },
3109
+ "params": {
3110
+ "type": "object",
3111
+ "description": "Custom query parameters. Keys become URL param names, values resolved from payload.",
3112
+ "additionalProperties": {
3113
+ "$ref": "#/components/schemas/FileProxyUrlParam"
3114
+ }
3053
3115
  }
3054
3116
  }
3055
3117
  },
@@ -3688,7 +3750,8 @@
3688
3750
  "properties": {
3689
3751
  "requires_vpc": {
3690
3752
  "type": "boolean",
3691
- "description": "Whether requests require VPC routing for IP allowlisting",
3753
+ "readOnly": true,
3754
+ "description": "Whether requests require VPC routing for IP allowlisting. Read-only after creation — can only be modified directly in DynamoDB.",
3692
3755
  "default": false
3693
3756
  },
3694
3757
  "auth": {
@@ -3941,6 +4004,35 @@
3941
4004
  "items": {
3942
4005
  "$ref": "#/components/schemas/MeterReadingUpdate"
3943
4006
  }
4007
+ },
4008
+ "warnings": {
4009
+ "type": "array",
4010
+ "description": "Validation warnings about the configuration (e.g., unique_ids referencing non-indexed fields)",
4011
+ "items": {
4012
+ "$ref": "#/components/schemas/MappingSimulationWarning"
4013
+ }
4014
+ }
4015
+ }
4016
+ },
4017
+ "MappingSimulationWarning": {
4018
+ "type": "object",
4019
+ "required": [
4020
+ "entity_schema",
4021
+ "field",
4022
+ "message"
4023
+ ],
4024
+ "properties": {
4025
+ "entity_schema": {
4026
+ "type": "string",
4027
+ "description": "The entity schema slug where the issue was found"
4028
+ },
4029
+ "field": {
4030
+ "type": "string",
4031
+ "description": "The field name that caused the warning"
4032
+ },
4033
+ "message": {
4034
+ "type": "string",
4035
+ "description": "Description of the validation issue"
3944
4036
  }
3945
4037
  }
3946
4038
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/erp-integration-client",
3
- "version": "0.25.0",
3
+ "version": "0.26.1",
4
4
  "description": "Client library for ePilot ERP Integration API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",