Integration API Reference
Package chargelink.integration.v1, API version 1.8.0, served over plaintext HTTP/2 gRPC on 127.0.0.1:50051 by chargelink integration serve. The proto file for the installed release (integration.proto) is the normative definition; this page summarises it for integrators. Compatibility history: 1.0.0 baseline, 1.1.0, 1.2.0 HIL, 1.3.0 XIL, 1.4.0 factory, 1.5.0 enterprise, 1.6.0, 1.7.0 listener binding, 1.8.0 current (host-monotonic stamps).
Conventions
- Every request carries
RequestContext{request_id,correlation_id,session_id,campaign_id,requested_api,idempotency_key}; every response carriesResponseContext. - Limits:
max_page_size1000,max_signal_batch_size512 (fromGetCapabilities). - Streams (
Watch*) deliver state changes; pollingGet*is always available. - Upstream gRPC errors are surfaced as standard status codes; the REST adapter maps them to HTTP 502.
Services and RPCs
| Service | RPCs | Notes |
|---|---|---|
| HealthService | GetHealth, GetVersion, GetCapabilities, WatchHealth (stream) | Health states STARTING / SERVING / DEGRADED / STOPPING with uptime_ms. Capabilities carry enabled and claim_boundary per entry, the protocol list and the traceability standards. |
| ConfigurationService | ValidateConfiguration, LoadConfiguration, GetConfiguration, UpdateConfiguration (configuration_json, expected_revision), ListProfiles, ResolveProfile | Optimistic concurrency through the revision. |
| SessionService | CreateSession (session_id, profile_id, protocol, chargelink_role, sut_role, configuration_json), ConfigureSession, StartSession, PauseSession, ResumeSession, StopSession, DeleteSession, GetSession, ListSessions, WatchSession (stream) | States from CREATED through RUNNING, COMPLETED to TERMINATED. Manages server-side session records; a listener started from the CLI is not bound to these records. |
| ProtocolService | ListProtocols, ListChargingModes, ListPaymentModes, ListSecurityModes, GetProtocolCapabilities, GetProtocolState, WatchProtocolState | GetProtocolState returns unobserved unless a bound observer exists (a session bound to a listener; capability bound-live-protocol-observer). |
| SignalService | ListSignals, ReadSignals, WriteSignals, SubscribeSignals (max_update_rate_hz, queue_capacity, after_sequence), GetSignalMetadata, CreateAcquisition (sample_rate_hz), StartAcquisition, StopAcquisition, GetAcquisition | 94 canonical signals; samples carry SourceIdentity { epoch, sequence, target_time_ms, applied_command_sequence }. Metadata: unit, direction, min/max, nominal sample rate. |
| TimeService | ConfigureTime (mode WALL_CLOCK / EXTERNALLY_CLOCKED / STEP_BASED / FASTER_THAN_REALTIME / DETERMINISTIC_REPLAY, fixed_step_ns, rate, random_seed), InitializeTime, PauseTime, ResumeTime, StepTime, GetTime, CreateCheckpoint, RestoreCheckpoint, WatchTime | Externally clocked and replay domains drive managed SIL and campaign deadlines; host time remains a safety boundary only. |
| SilService | CreateSilSession (topology EVSE_NATIVE_SIL_EVCC or EVCC_NATIVE_SIL_EVSE, tls_required, ipv6_host, interface_index), InitializeSilSession, PauseSilSession, ResumeSilSession, RunNetworkExchange, RunCampaignBridge, GetSilSession, StopSilSession, TerminateSilSession, WatchSilSession | Managed SIL over real IPv6 loopback networking (SDP UDP 15118, TCP 50118), optional rustls, V2GTP, native EXI; campaign bridge evaluates evidence with the shared engine. |
| HilService | ListHardwareAdapters, GetHardwareAdapter, CreateHardwareSession, ConfigureHardwareSession (HardwareIoMapping), ApplyHardwareCalibration, InitializeHardwareSession, StartHardwareSession, PauseHardwareSession, ResumeHardwareSession, SynchronizeHardwareSession (cycle_ns, maximum_jitter_ns), WriteHardwareSignals, ReadHardwareSignals, InjectHardwareFault, ClearHardwareFault, EmergencyStopHardwareSession, CaptureHardwareEvidence, GetHardwareSession, StopHardwareSession, TerminateHardwareSession, WatchHardwareSession | Vendor-neutral adapter SDK; the shipped adapter is deterministic-hardware-simulator (physical_hardware_present: false). Fault kinds: control_pilot_fault, proximity_disconnected, isolation_fault, contactor_welded, overtemperature, cooling_loss, plc_link_loss, can_bus_off, emergency_stop. |
| XilService | ListXilBridges, GetXilBridge, CreateXilSession, ConfigureXilSession (XilVariableMapping: framework variable, port kind, testbench variable, direction, scale, offset, unit), LoadXilConfiguration, StartXilSession, PauseXilSession, ResumeXilSession, SynchronizeXilSession, ListXilVariables, ReadXilVariables, WriteXilVariables, ConfigureXilCapture (sample_period_ns), RunXilSignalGeneration, InjectXilElectricalFault, ClearXilElectricalFault, CaptureXilEvidence, GetXilSession, StopXilSession, TerminateXilSession, WatchXilSession | ASAM XIL Framework / MAPort / EESPort model with the deterministic reference bridge veristand-asam-xil-reference. Electrical faults: OpenCircuit, ShortToGround, ShortToBattery, Resistance, Intermittent. |
| TestCampaignService | ListTestPackages, ListTestAreas, ListTestCases, CreateTestPlan, RunCampaign, StopCampaign, GetCampaign, WatchCampaign, GetCaseResult, ListCaseResults | Same engine as chargelink test; verdicts require live-SUT or validated-replay evidence. |
| EvidenceService | ListEvidence, GetEvidence, StreamEvidence, ExportEvidence, VerifyEvidence | SHA-256 integrity; export honours redaction classes. |
| ReportService | GenerateReport (campaign_id, format), GetReport, ListReports, ExportReport | JSON, Markdown and HTML. |
| FactoryService | ListFactoryStations, GetFactoryStation, ListFactoryRecipes, GetFactoryRecipe, CreateFactoryExecution, ConfigureFactoryExecution, StartFactoryExecution, PauseFactoryExecution, ResumeFactoryExecution, RecordFactoryMeasurement, CompleteFactoryStep, CompleteFactoryExecution, AbortFactoryExecution, GetFactoryExecution, ListFactoryExecutions, CaptureFactoryEvidence, GetFactoryEvidence, WatchFactoryExecution | Deterministic station/recipe/limit/disposition engine; reference station reports no physical hardware. |
| EnterpriseService | ListEditions, ListRoleDefinitions, UpsertPrincipal, ListPrincipals, EvaluateAuthorization, PutSecret, ListSecretMetadata, DeleteSecret, VerifySecretStore, AppendAuditEvent, ListAuditEvents, VerifyAuditChain, EnrollRemoteAgent, HeartbeatRemoteAgent, ListRemoteAgents, GetFleetHealth, CreateUpdateManifest, VerifyUpdateManifest, ListUpdateManifests, CreateUpdateRollout, AdvanceUpdateRollout, PauseUpdateRollout, ResumeUpdateRollout, RollbackUpdateRollout, ListUpdateRollouts, CaptureEnterpriseEvidence, WatchEnterpriseEvents | Editions engineering / professional / enterprise / factory; deterministic reference cryptography; EvaluateAuthorization is not enforced on other RPCs. |
| ReleaseCandidateService | ListEnvironments, ListScenarios, ListPerformanceBudgets, CreateRun, StartRun, InterruptRun, RecoverRun, SubmitEnvironmentResult, FinalizeRun, GetRun, ListRuns, CaptureEvidence, WatchEvents | Cross-environment run dossier used by DEVlink release tooling; not needed for operation. |
Compatibility
- Generate clients from the proto of the installed release; check
GetCapabilities.api_versionat start-up and refuse to run against a lower major version. - Minor versions add services and fields; they do not remove them.
chargelink integration compatibilityvalidates the protobuf compatibility policy of the installed build.- The CLI smokes (
session-smoke,signals smoke,sil-smoke,hil-smoke,xil-smoke,factory-smoke,enterprise-smoke) are the reference behaviour for each service group.
Security
Transport: plaintext HTTP/2 on a loopback address only, with a per-start bearer token required on every call (authorization: Bearer <token>, token in <state-root>\api-token). API 1.8.0 is additive: SourceIdentity.host_monotonic_ns (the owner's command send instant on the host monotonic clock) and the observed_monotonic_ns / issued_monotonic_ns fields of the owner-safety frame and request. Components of different releases refuse each other (fail closed), so the owner host, the service and the SECC must come from the same release. The transport requirement (loopback plus token) is breaking for third-party clients written for 0.3.0. See Production Security.

