Georgia Gateway External Partner Interface Catalog

On this page
Contents

Provenance. Seventeen read-only structured sweeps over the two Georgia Gateway repos (worker-portal, customer-portal — local checkouts; the source is the de-facto documentation of these interfaces), synthesized mechanically from the sweep findings (epic &79 / #1527, 2026-08-21/22). Evidence paths are relative to the Gateway checkouts, which are not part of this repository. Regeneration: docs/tools/gen-gateway-catalog.py (inputs hash-pinned in the generator and the epic &79 plan page).

Scope ruling. canopy builds deterministic TEST MOCKS of these interfaces — no live adapters, no connectivity (no connectivity exists yet). Extraction rules (recorded on epic &79): interface FACTS only; no transplanted vendor code; no credentials, endpoints, or routing identifiers; the ADR-004 classification lens on every row; borderline items go to the user, not this page.

Master table

One row per canonical partner family; per-family interface detail below. SNAP? marks the SNAP-relevant subset (IEVS verification family, EBT, FNS inputs) — the mock-priority set.

Partner SNAP? Transports seen Findings Classification flags

SSA — SOLQ/SVES (state online query)

yes

DB link, JMS/MQ, REST, SFTP/MFT, SOAP, batch file, webMethods

24

FTI, PII, SSA

SSA — NUMIDENT / EVS / other

yes

DB link, JMS/MQ, REST, SFTP/MFT, SOAP, batch file, webMethods

20

FTI, PHI, SSA

GDOL — UI benefits & quarterly wages

yes

REST, SFTP/MFT, SOAP, batch file, webMethods

17

FTI, PII

DECAL / CAPS (childcare)

DB link, SFTP/MFT, SOAP, batch file, webMethods

16

PHI, PII

EBT — FIS / Conduent / Xerox (EBTAS)

yes

JMS/MQ, REST, SFTP/MFT, SOAP, batch file, webMethods

15

FNS, PHI, PII

SHINES (GA SACWIS child welfare)

DB link, REST, SFTP/MFT, SOAP, batch file, webMethods

15

FNS, PHI, PII

DIS / Oracle WebCenter (document imaging)

REST, SFTP/MFT, SOAP, batch file, webMethods

14

FNS, FTI, PHI, PII, SSA

FFM / marketplace account transfer (ATX)

DB link, REST, SFTP/MFT, SOAP, batch file, webMethods

14

FTI, PHI, PII, SSA

GAMMIS / MMIS (Medicaid claims & enrollment)

JMS/MQ, SFTP/MFT, SOAP, batch file, webMethods

14

PHI, PII

Experian — identity / credit / QAS address

REST, SOAP, batch file, webMethods

12

FTI, PHI, PII, SSA

TPL / ESI (third-party liability insurers)

SFTP/MFT, SOAP, batch file, webMethods

12

PHI

AVS (asset verification: Accuity/HMS IntegriMatch)

yes

DB link, REST, SOAP, batch file, webMethods

11

FNS, FTI, PHI, PII

IRS — BEER / FTI

yes

DB link, SFTP/MFT, batch file, webMethods

10

FTI

Adobe LiveCycle / central print vendor

REST, SFTP/MFT, SOAP, batch file, webMethods

9

PHI, PII

Equifax — The Work Number (TALX)

yes

REST, SOAP, webMethods

9

FTI, PHI, PII

PARIS (interstate match)

yes

SFTP/MFT, batch file, webMethods

9

FTI, PHI, PII

STARS / $TARS (child support enforcement)

REST, SFTP/MFT, SOAP, batch file, webMethods

9

PII

US Treasury — TOP / GA DOR DSO (debt offset)

yes

SFTP/MFT, batch file, webMethods

9

FNS, FTI, PII

USCIS SAVE / VLP (immigration status)

yes

REST, SOAP, batch file, webMethods

9

PII

EMPI (GA enterprise master person index)

REST, SFTP/MFT, SOAP, batch file, webMethods

8

PHI, PII

GA DDS (driver services identity match)

JMS/MQ, REST, SOAP, webMethods

8

PII

ImageNow / Perceptive ECM (document imaging)

REST, SFTP/MFT, SOAP, batch file, webMethods

8

FTI, PHI, PII

SSA — BENDEX (Title II benefits)

yes

JMS/MQ, SFTP/MFT, batch file, webMethods

8

PII, SSA

FNS — eDRS (disqualified recipients)

yes

REST, SOAP, batch file, webMethods

7

FNS, PII

FNS — reporting / other

yes

REST, SFTP/MFT, SOAP, batch file, webMethods

7

FNS, PII

GA Vital Records (GAVERS)

JMS/MQ, REST, SOAP, batch file, webMethods

7

PII

MAXSTAR / MAXIMUS (appeals vendor)

REST, SFTP/MFT, SOAP, batch file, webMethods

7

PHI, PII

OCSE — NDNH (national new hire)

yes

DB link, SFTP/MFT, batch file, webMethods

7

FTI, PII, SSA

PeopleSoft (state financials)

SFTP/MFT, batch file, webMethods

7

PII

SSA — SDX (SSI data exchange)

yes

JMS/MQ, SFTP/MFT, batch file, webMethods

7

PII, SSA

State WIC system

REST, SFTP/MFT, SOAP, batch file, webMethods

7

FNS, PHI, PII

TCSG / Board of Regents (Pathways education)

SFTP/MFT, batch file, webMethods

7

PII

GA DOE — school meals direct certification

yes

SFTP/MFT, batch file, webMethods

6

FNS, PII

GVRA (vocational rehabilitation)

SFTP/MFT, SOAP, batch file, webMethods

6

PHI, PII

IVR / telephony vendor

REST, SOAP, batch file

6

FNS, PHI, PII

LIHEAP (energy assistance)

SFTP/MFT, batch file, webMethods

6

PII

SOLVE (DHS customer contact)

DB link, REST, SOAP, batch file

6

PII

SUCCESS (legacy eligibility system)

SFTP/MFT, SOAP, batch file, webMethods

6

PHI, PII, SSA

ACF — TANF federal reporting

SFTP/MFT, batch file, webMethods

5

FNS, PII

D-SNAP (disaster SNAP channel)

yes

REST, SOAP, batch file

5

FNS, PII

GA DOC (prisoner match)

SFTP/MFT, batch file, webMethods

5

PII

LexisNexis — identity / assets

SFTP/MFT, SOAP, batch file, webMethods

5

PHI, PII

SHBP (state health benefit plan)

SFTP/MFT, batch file, webMethods

5

PHI, PII

GA New Hire registry

yes

DB link, SFTP/MFT, batch file, webMethods

4

PII

NAC (National Accuracy Clearinghouse)

yes

REST, SFTP/MFT, SOAP, batch file, webMethods

4

FNS, PII

PCS / PeachCare for Kids (CHIP)

SOAP, batch file, webMethods

4

PHI, PII

SteadyIQ (gig income verification)

REST, batch file

4

PII

Truv (income/employment verification)

REST

4

PII

CMO (care management organizations)

batch file

3

PHI

DCSS — child support services

SOAP, batch file

3

PII

CPP (TANF work-participation vendor portal)

REST, SOAP

2

PII

MCHB (maternal & child health)

batch file

2

PHI

NCOA (postal address change)

batch file

2

PII

VCL

REST, SOAP

2

PHI, PII

ANTS (notice tracking feed)

batch file

1

Data Broker (income aggregator)

JMS/MQ, REST

1

PII

HMS — Pathways

batch file

1

PHI

ODDC

REST, SOAP

1

PII

OPI (program integrity)

JMS/MQ

1

FNS, PII

59 external partner families (443 findings); 7 internal/architecture families and 60 uncategorized findings are in the appendices.

Per-partner detail

Rows are deduplicated on the full (direction, transport, format) triple; the census manifest (generator output) records every finding id as rendered, duplicate-of a rendered key, summarized (Appendix A), unmatched (Appendix B), or critic (Coverage) — nothing is silently dropped.

SSA — SOLQ/SVES (state online query)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the GTA webMethods ESB (GAIES_SSA.wsProvider.processSSA_SOLQ; endpoint host redacted)

WSDL 1.1 wrapping the SSA fixed-field SOLQ record layout — hyphenated mainframe field names surfaced as XML elements (t1-rectyp, t1-ssn, t1-bic, t1-can-ssn, t1-evscde, t1-discde, t1-mat-discd, t1-t2-sts, t1-t16-sts, t1-st-agycd, t1-welf-no, t2-agcy, t2-bic, t2-bles …), plus solqout1..solqout4 output segments

real-time (single processSSA_SOLQ call)

worker-portal/IEWebApp/WebContent/wsdl/SOLQServiceIntegration/GAIES_SSA_wsProvider_processSSA_SOLQ_Port_1.wsdl:721 (service GAIES_SSA.wsProvider.processSSA_SOLQ), :703 (portType processSSA_SOLQ_PortType), :704 (operation processSSA_SOLQ); 725 lines. Config key SOLQ_SERVICE_URL in IEApp_Properties/Local/Application.properties. A copy exists in the customer-portal repo at services/WebContent/WEB-INF/wsdl/

bidirectional (outbound request, inbound response)

SOAP/XML request-response (JAXB-bound); WSDL sibling at IEWebApp/WebContent/wsdl/SOLQServiceIntegration/

WSDL+XSD. Schema: worker-portal/DA/src/xsd/SOLQSchema.xsd (384 ln)

real-time (single-person query/response)

worker-portal/DA/src/xsd/SOLQSchema.xsd:10-13 declares roots ssa_request and solq_response; :17-19 fixed literals tran=SOLQ, appl=A, st_cd fixed="027"; :84-88 response is {errcd, errmsg, ssnvs, mbr, ssr}. JAXB classes: worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/solq/cargo/generated/{SsaRequest,SolqResponse,Ssnvs,Mbr,Ssr}.java

bidirectional (send request file, receive response file)

batch file → JAXB record

fixed-position layout; ns http://www.example.org/SVESPrisonerVerification{Send,Rcv}Schema

batch (periodic)

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{SVESPrisonerInfo,SVESPrisonerRcvInfo,SVEPrisonInfo,SVESPrisonerInfoDocument,SVESPrisonerRcvInfoDocument}.java

bidirectional

batch file → JAXB record

fixed-position layout; ns http://www.example.org/SVES40QUATERSWAGE{SEND,RCV}Schema

batch

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/SVES40QUATERSWAGERCVInfo.java:52 and …​/SVES40QUATERSWAGESENDInfo.java (+ the two *Document wrappers)

bidirectional (send queue + trigger queue + receive queue)

JMS queue triggered, then dispatched over HTTP by FwHttpDispatcher (queue→HTTP bridge)

FwXMLMessage XML envelope; body entity built as an attribute Map from INSndSolqToSSAVO.ENTITY_NAME

real-time / on-demand per client (worker- or trigger-initiated)

Queue ids: worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:34 (INSndSolqToSSAMsgVO→INSOLQSendQ, INSndSolqTriggerMsgVO→INSOLQTriggerQ, SolqResponseVO→INRCVSolqDataQ). Dispatcher + trigger: worker-portal/IEWebApp/WebContent/XML/config/services.xml:71 (INSOLQSendQ=FwHttpDispatcher), :93-97 (<INSOLQSendQ name="SOLQ" SOLQ="gov.state.nextgen.in.bo.SOLQTrigger" queryString="SOLQ"/>). Producer: worker-portal/Common/src/gov/state/nextgen/common/bo/INSolqTriggerBO.java:100 (MSG_VO_CLASS=INSndSolqTriggerMsgVO), :154-155 and :206-207 ("Put the trigger on the Queue" → createMQMessage()), :495-527 (builds INSndSolqTriggerMsgVO and calls data.persist → AbstractMessageDAO.sendForget). EJB routing: worker-portal/IEWebApp/WebContent/XML/config/services.xml:21-22 (processSOLQTriggers→ejb/INSndSOLQSessionEJB, processSOLQResponse→ejb/INRcvSOLQFromSSAEJB).

bidirectional

SOAP over webMethods/GTA ESB (real-time); also SOLQ staging tables

WSDL+XSD — service GAIES_SSA.wsProvider.processSSA_SOLQ, portType processSSA_SOLQ_PortType; separate SOLQSchema.xsd

real-time (on-demand worker/applicant query)

worker-portal/IEWebApp/WebContent/wsdl/SOLQServiceIntegration/GAIES_SSA_wsProvider_processSSA_SOLQ_Port_1.wsdl:703,721,723 (portType, service, soap:address on the GTA ESB); duplicate provider WSDL at customer-portal/services/WebContent/WEB-INF/wsdl/GAIES_SSA_wsProvider_processSSA_SOLQ_Port_1.wsdl:721; schema at worker-portal/DA/src/xsd/SOLQSchema.xsd; constants at worker-portal/Common/src/gov/state/nextgen/common/util/INSolqConstants.java:113

bidirectional

batch file via webMethods ActiveTransfer MFT; inbound loaded by Oracle SQL*Loader into staging

fixed-width, 2151-byte records; response record types Title II, Title XVI, Title II/XVI combined, Prisoner

daily (IN-RCSVS-DLY, IN-SNSVS-DLY) and quarterly (IN-SNSVS-QLY); prisoner match monthly

worker-portal/BATCH/IN/sql-loader-control/InRcvSvesSsnDlyCtl.ctl (POSITION (1:2151)); worker-portal/BATCH/IN/sql-loader-control/InRcvSvesPrisDlyCtl.ctl (POSITION (1:2151)); record classes worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/util/SvesTitleIIResponseRecord.java:8, SvesTitleXVIResponseRecord.java:8, SvesTitleIIXVIResponseRecord.java:8, SvesPrisRcvRecord.java:9; MFT events IES_SSA_OUTBOUND_DAILY_DLY_VERIF / SSA_IES_INBOUND_DAILY_DLY_VERIF in worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v2

outbound request / inbound response (real-time)

SOAP over webMethods ESB; also a JMS queue pair for async

WSDL+XSD; webMethods provider naming GAIES_SSA.wsProvider.processSSA_SOLQ / …​_Port; generated JAXB package gov.state.nextgen.jaxb.solq

real-time (online) plus queued async

worker-portal/IEApp_Properties/Local/Application.properties:216-219 (SOLQ_SERVICE_URL, SOLQ_NAME_SPACE, SOLQ_SERVICE_NAME); worker-portal/IEApp_Properties/local_batch/Application.properties:51-54; worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:34 (queues INSOLQSendQ, INSOLQTriggerQ, INRCVSolqDataQ); worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/solq/cargo/generated

bidirectional

batch file + SQL*Loader staging

BeanIO fixed-length: sves-dly-mapping.xml (3 records, 56 fields, 520-char), sves-ssn-verf-mapping.xml (1 record, 15 fields, 137-char), svesssnver-rcv-dly-mapping.xml (4 records), em-merge-file-mapping.xml (137-char, stream SVESMergeRecords); staging tables IN_SVES_STG, IN_SVES_PRIS_RCV_STG

daily (IN-RC40Q-DLY, IN-RCSVS-DLY, IN-SNSVS-DLY, EM-SVES*-DLY), quarterly (IN-SNSVS-QLY, EM-SVRECQT-QLY), monthly prisoner (IN-RCPRM-MLY)

worker-portal/BATCH/IN/src/resource-mapping/sves-dly-mapping.xml; worker-portal/BATCH/IN/src/resource-mapping/sves-ssn-verf-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvSvesSsnDlyCtl.ctl; worker-portal/BATCH/IN/sql-loader-control/InRcvSvesPrisDlyCtl.ctl; worker-portal/BATCH/CV_INFORM/src/META-INF/batch-jobs/ (EM-SVESENT-DLY, EM-SVESPRS-DLY, EM-SVESQRQ-DLY, EM-SVESSSN-DLY, EM-SVRECDY-DLY, EM-SVRECQT-QLY, EM-SVSEDYF-DLY, EM-SVSEQTF-QLY)

bidirectional

MQ-JMS (IBM MQ: queue manager, channel, CCSID, transport) plus JNDI/JMS connection factory

dhs-message.xsd envelope (Message / FwHeader / Route with messageId, corrId, queue, queueManager, Originator) targetNamespace http://www.ufp-earth.org/framework/schema/messaging; per-VO queue routing table

continuous / event-driven; one receiver queue is bound to a daily job

worker-portal/IEApp_Properties/local_batch/messaging.properties:3-19 (queueConnectionFactory, queuePort, queueTransport, queueCcsId, queueHost, queueChannel, queueManager, queue, timeout.length, header.remove, RETRIAL_TIME_LIMIT, MESS_EXCEPTION_NO_OF_ATTEMPTS); worker-portal/IEApp_Properties/Local/Application.properties:39 (MCI_MQ_SW), :108 (ValidateMQEnvironment), :548-556 (OPA_SEND_TO_JMS_ONLY, HOST_URL, JNDI_FACTORY, JMS_FACTORY, QUEUE_NAME); worker-portal/IEApp_Properties/local_batch/Application.properties:143-145 (MQ_QUEUE_NAME, MQ_QUEUE_CONNECTION_FACTORY); worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:23-34 (queue names: INClientDetailsQ, INTWCClientInfoQ, INEdgHistoryQ, INMedicaidInfoQ, INTWCEdgeInfoQ, INBendexQ, INOPIDisq, INOPIReferralQ, INDRKR1PAMQ..INDRKR7PAMQ, INDRListenerStopQ, COEmailCorrQ, CVSaverrMciQ, CVTiersMciQ, FWBatchFTPOutQ, BiBOPQ, muTriggerQueue, fwPagerQueueName, INSASSendQ, INSASTriggerQ, INSOLQSendQ, INSOLQTriggerQ, INRCVSolqDataQ, SERoleToFunctionsQ, SERoleToReportsQ); worker-portal/IEWebApp/WebContent/XML/config/broker.xml:3-15 (receiverqueues BiCardHolderQ bound to process_name FW-BOPIM-DLY.ksh, synchronous; exceptionqueue FWBatchErrorQ); worker-portal/IEWebApp/WebContent/XML/config/dhs-message.xsd:6

outbound

SOAP via webMethods GAIES_SSA.wsProvider.processSSA_SOLQ (Axis2-generated stub)

WSDL-generated Axis2 ADB classes over SSA’s fixed-field SOLQ record layout. Request Ssa_request fields: tran, appl, st_cd, audit, ssn, can, bic, fnm, mnm, lnm, dob, agency. Response SolqResponse → Solqout1..4 → segments: SSNVS (T1* — T1Ssn, T1CanSsn, T1Bic, T1Sname/T1Mid/T1Name, T1Dob, T1Sex, T1StAgycd, T1Assist, T1StCommcd, T1WelfNo, T1RespDt, T1Errcd, T1Discde, T1MatDiscd, T1Evscde, T1MultData, T1Rectyp, T1T2Sts, T1T16Sts); MBR (T2* — Title II/RSDI: T2Ssn, T2Bic, T2Scc, T2Zip, T2Ppna[], T2Ddco, T2Dpd, T2Pyind, T2PyDt, T2Pamt, T2Camt, T2Spcci, T2Laf, T2Dob, T2Fname/Mi/Lname, T2Doeidt, T2Doecdt, T2Dostdt, T2Sex, T2Mbp, T2MedKy); T2History (T2Hisdt, T2Hisamt, T2Bpd); T2XranGp; SSR (T3* — Title XVI/SSI: T3Esper, T3Plcde, T3Pldt, T3Reddt, T3Ssn, T3Mft, T3Estabdt, T3Brthdt, T3Dthdt, T3Dodcd, T3Curstat, T3Curdt, T3Psn, T3Sex, T3Race, T3Resh/Resv/Resi/Respr/Reso, T3Othname, T3Gname, T3Aplmnam, T3Sname, T3Dcsn); T3Mmssn; T3Mmul; T3Pdadr (T3Add); T3Phst; T3Uneinc (T3Iuetp, T3Iuevr, T3Iuestdt, T3Iuespdt, T3Iueamt, T3Iuefrq, T3Iueidno)

real-time, triggered at application wrap-up

Call: customer-portal/bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:3016 (callSolqService), :3028 (AppConstants.SOLQ_SERVICE_URL). Stubs: bridgesClient/gov/state/nextgen/ejb/business/services/solq/ (GAIES_SSAWsProviderProcessSSA_SOLQStub.java, SolqRequest.java, Ssa_request.java:26-81, SolqResponse.java, Solqout1-4.java, Ssnvs.java:26-126, Mbr.java:26-147, Ssr.java:26-146, T2History.java, T3Uneinc.java, T3Pdadr.java, T3Mmssn.java, T3Phst.java, T3Mmul.java, T3Xran…). TRIGGER IN MY SURFACE: customer-portal/afbEJB/ejbModule/gov/state/nextgen/access/business/services/ApplicationWrapUpEJBBean.java:115 (solqBo.callSolqService(appNum)). BO: commonApp/gov/state/nextgen/access/business/rules/SolqBO.java:194, :223. Key: sharedApp/…​/AppConstants.java:4705 = "SOLQ_SERVICE_URL"; endpoint framework/properties/config/production_env.properties:306

bidirectional

batch file over SFTP, orchestrated by webMethods ActiveTransfer/MFT scheduledAction

flat data file (fixed-width; layout in worker-portal/interfaceSchema JAXB classes, not read)

file content daily/quarterly/monthly per name; MFT polls the staging dir every 7200s (interval=7200 noOverlap=true)

worker-portal/IN/webMethods/IES_SSA_Inbound:194 (SSA_IES_INBOUND_DAILY_DLY_VERIF, active=true, filter InRecSvesDlyVerifDat), :775 (SSA_IES_INBOUND_DAILY_40_QTRDLY, InRec40QtrDlyDat), :1162 (SSA_IES_INBOUND_DAILY_MLY_PRISONERMATCH, InRcvMlySSAPrisonerMatchDat); outbound legs at worker-portal/IN/webMethods/'[secret-bearing path withheld]':388 (IES_SSA_OUTBOUND_DAILY_40_QTRDLY), :582 (IES_SSA_OUTBOUND_DAILY_MLY_PRISONER_MATCH), :776 (IES_SSA_OUTBOUND_DAILY_DLY_VERIF), :5623 (IES_SSA_OUTBOUND_DAILY_QLY_VERIF); also ActiveTransfer_Sprint3_v1:4051/4177/4303/4429 (out) and :4683/4809/4935 (in)

outbound

raw HTTP POST via pub.client:http (NOT a SOAP wsConsumer)

XML request body; SOLQ response parsed by record type t1-rectyp

real-time, worker-initiated (synchronous request/reply)

worker-portal/IN/webMethods/GAIES_SSA_Full_v1.zip → ns/GAIES_SSA/services/processSSA_SOLQ/flow.xml: pub.client:http at line ~1355; response gate BRANCH SWITCH="/fault/status" case 200 at ~3616; nested BRANCH LABELEXPRESSIONS="true" on %solq_response/ssnvs/t1-rectyp% with cases '1','2','3','4',$default at ~3626; catch block at ~6040. Canonical identity literals at lines 262–350: interfaceCode=SSA, transactionDirection='HTTP CALL TO SSA-SOLQ', targetSystem=SSA. Exposed to IES as provider WSDL worker-portal/IEWebApp/WebContent/wsdl/SOLQServiceIntegration/GAIES_SSA_wsProvider_processSSA_SOLQ_Port_1.wsdl (service GAIES_SSA.wsProvider.processSSA_SOLQ, op processSSA_SOLQ, document/literal, MEP input+output)

bidirectional

SOAP (webMethods wsProvider fronting a mainframe/SOLQ back end)

WSDL+XSD; response split across four doc types solqout1..solqout4 (SOLQ fixed-position response segments modeled as IS documents)

real-time

worker-portal/IN/webMethods/GAIES_SSA_Full_v1.zip → ns/GAIES_SSA/doc/SOLQ/{solqRequest,solqResponse,solqout1,solqout2,solqout3,solqout4}, ns/GAIES_SSA/services/processSSA_SOLQ, ns/GAIES_SSA/wsProvider/processSSA_SOLQ

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer (MFT scheduled actions, fixed-interval polling)

fixed-width flat files (SSA standard SVES/SDX/BENDEX/40-Quarter layouts); layouts themselves not present in this subsurface

daily (SVES DLY_VERIF, 40 Quarters, SDX daily, BENDEX daily, LIS daily), monthly (prisoner match, SDX monthly, BENDEX monthly), quarterly (SVES QLY_VERIF), annual (SDX annual)

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 and worker-portal/IN/webMethods/IES_SSA_Inbound → IES_SSA_OUTBOUND_DAILY_DLY_VERIF, IES_SSA_OUTBOUND_DAILY_QLY_VERIF, IES_SSA_OUTBOUND_DAILY_40_QTRDLY, IES_SSA_OUTBOUND_DAILY_MLY_PRISONER_MATCH, SSA_IES_INBOUND_DAILY_DLY_VERIF, SSA_IES_INBOUND_DAILY_40_QTRDLY, SSA_IES_INBOUND_DAILY_MLY_PRISONERMATCH, SDX_IES_INBOUND_{DAILY,MONTHLY,ANNUAL}_INFO_FILE, BENDEX_IES_INBOUND_DAILY_FILE, IES_BENDEX_OUTBOUND_{DAILY,MONTHLY}_FILE, LIS_IES_INBOUND_DAILY_FILE, SSA_IES_INBOUND_LOW_INCOME_SUBSIDY

outbound

SOAP via webMethods (Axis2 generated stub), IS package GAIES_SSA, service wsProvider.processSSA_SOLQ

WSDL+XSD; SOLQ Type 1 and Type 2 request variants distinguished in the BO layer

real-time (worker-initiated inquiry)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/solq/GAIES_SSAWsProviderProcessSSA_SOLQStub.java; worker-portal/IN/common/src/gov/state/nextgen/in/bo/solq/{InSolqBO,InSolqBOTypeOne,InSolqBOTypeTwo,InSolqBOTypeTwoXrefBen}.java; ejbModule/gov/state/nextgen/ejb/business/services/in/INSOLQViewReportsSessionEJBBean.java; …​/INSXSReqToSSASessionEJBBean.java; webMethods/GAIES_SSA{,_v1,_v2,12_09062015,_Full_v1}.zip

inbound

batch file → webMethods → DB; worker portal reads results via EJB session beans. SDX request side builds a positional/fixed-width record.

fixed-width record layout (SDX request); inbound response persisted to DB

SDX/BENDEX conventionally monthly + daily deltas; not asserted in this surface

ejbModule/gov/state/nextgen/ejb/business/services/in/{INSVESSessionEJBBean,INSVESInqSessionEJBBean,INSDXInqSessionEJBBean,INBDIBendexInquirySessionEJBBean,INBEERSSessionEJBBean}.java; worker-portal/IN/common/src/gov/state/nextgen/in/bo/{INSdxInquiryBO,INSdxRequestBO,INSdxForceChangeBO,InSDXProcessManager,INSdxSendSOLQTriggerBO,SdxInquiryBO,SdxRequestBO,INDRBendexBO,InBEERSBO,INSVESResponseBO}.java; common/src/gov/state/nextgen/in/util/InBendexRule.java; webMethods/IES_SSA_Inbound; webMethods/IES_SUCCESS_SVESCITIZEN_FILE_11122015

bidirectional

batch file + SQL*Loader stage

fixed-width; BeanIO fixedlength (sves-dly-mapping.xml, sves-ssn-verf-mapping.xml, svesssnver-rcv-dly-mapping.xml, federal-split-mapping.xml)

daily (SSN verify, 40Q, prisoner), monthly (PRM/PRI), quarterly (SNSVS-QLY)

jobs …​/batch-jobs/{IN-RC40Q-DLY,IN-SN40Q-DLY,IN-SN40QMRG-DLY,IN-SN40QSPT-DLY,IN-RCSVS-DLY,IN-RCSVSSPT-DLY,IN-SNSVS-DLY,IN-SNSVS-QLY,IN-RCPRM-MLY,IN-SNPRI-MLY,IN-SNPRIMRG-MLY,IN-SNPRMSPT-DLY,IN-SVSEMPI-DLY}.xml (package gov.state.nextgen.in.batch.sves); loaders worker-portal/BATCH/IN/sql-loader-control/InRcvSvesSsnDlyCtl.ctl → IE_APP_ONLINE.IN_SVES_STG and InRcvSvesPrisDlyCtl.ctl → IE_APP_ONLINE.IN_SVES_PRIS_RCV_STG

bidirectional

batch file (SSA mainframe fixed-width; EBCDIC value conversion helper present); responses also loaded via SQL*Loader

fixed-width. Send SSN-verification record 137+ bytes (ssn 9, claimAccNum 9, bic 3, lastName 19, mi 1, firstName 12, dob 8 MMddyyyy, sex 1, titleIIRequest, titleXVIRequest, stateAgenCD default '011', catagOfAssis, stateComuCD, stateData 40); response file has 4 record types — standardResponse (recordType literal '1' @153), titleIIResponse, titleXVIResponse, titleIIXVIResponse (766 mapped fields); 40Q response 520 bytes (verifiedSsn, inputSsn, name, dob, stateCd, stateData, min/max quarters, railroad service months, conditionCd, qualifQrtrPattern 436); prisoner send/receive streams

daily (IN-SNSVS-DLY, IN-RCSVS-DLY, IN-RCSVSSPT-DLY, IN-SN40Q-DLY, IN-SN40QSPT-DLY, IN-RC40Q-DLY, IN-SVSEMPI-DLY, IN-SNPRMSPT-DLY); quarterly (IN-SNSVS-QLY); monthly prisoner (IN-SNPRI-MLY, IN-SNPRIMRG-MLY, IN-RCPRM-MLY)

worker-portal/BATCH/IN/src/resource-mapping/sves-ssn-verf-mapping.xml:4-20 (SvesSsnVerfRecordStream, stateAgenCD default '011'); worker-portal/BATCH/IN/src/resource-mapping/svesssnver-rcv-dly-mapping.xml:3-32 (standardResponse), :33 (titleIIResponse), :170 (titleXVIResponse), :432 (titleIIXVIResponse); worker-portal/BATCH/IN/src/resource-mapping/sves-dly-mapping.xml:4-19 (Sves40QRcvRecordStream), :21 (SvesPrisonerRecordStream), :53 (SvesPrisonerSndStream); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/util/ASCIICharacterToEBCDICValue.java:12-56 (EBCDIC/ASCII hex translation used on SVES values); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/util/SVESConstants.java:26-40 (alerts INT002-INT010, verification codes); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/bo/impl/SvesPrisRcvBOImpl.java:56,59 (INT011/INT012), Sves40QRcvBOImpl.java:142,146,150 (INT013/INT015/INT014); worker-portal/BATCH/IN/sql-loader-control/InRcvSvesSsnDlyCtl.ctl, InRcvSvesPrisDlyCtl.ctl; webMethods worker-portal/IN/webMethods/IES_SUCCESS_SVESCITIZEN_FILE_11122015

bidirectional

batch file over SFTP (SFTPCopyBatchlet); staged through a temp/merge directory then moved to an outbound dataset dir

flat text file, fixed name EMPI_SVES_SSN_OUT_FILE.txt, timestamp-suffixed on archive; multi-part run files merged (InSndEMPISVESDat.run0 style) with null-byte stripping before send

daily (send, receive, SSN, presumptive, PMR, query-request); quarterly (SVRECQT, SVSEQTF)

worker-portal/BATCH/CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/batchlet/MergeFile.java:142-143 (target /EMPI_SVES_SSN_OUT_FILE.txt, archive with _ timestamp suffix), :175-177 (props SVESTempLocation, SVESDestination), :190-197 (multi-part run-file merge + null-byte strip), :233-234, :284-290 (SFTP transfer of EMPI_SVES_SSN_OUT_FILE.txt). Jobs (CV_INFORM/src/META-INF/batch-jobs/): EM-SNSVSFL-DLY.xml (send; :15-45 file-existence → single-file → empty-file gate chain; :73 SFTPCopyBatchlet), EM-RCSVSFL-DLY.xml:23 (receive, SFTPCopyBatchlet), EM-OSVESFL-ONR.xml, EM-ISVSFLE-ONR.xml, EM-SVESENT-DLY.xml, EM-SVESSSN-DLY.xml, EM-SVESPRS-DLY.xml, EM-SVESPMR-DLY.xml, EM-SVESQRQ-DLY.xml, EM-SVESFTS-ONR.xml, EM-SVRECDY-DLY.xml, EM-SVRECQT-QLY.xml, EM-SVSEDYF-DLY.xml, EM-SVSEQTF-QLY.xml. Shared merge util: FW/src/gov/state/nextgen/framework/batch/util/batchlet/SVESEMPIMergeBatchlet.java.

bidirectional

batch file (CSV in, CSV out)

CSV BeanIO — ssnUpdateReaderXmlStreamName (inbound) and ssnUpdateWriterXmlStreamName (outbound)

weekly

worker-portal/BATCH/DC/src/resource-mapping/ssnUpdateReader.xml:4 (stream, format csv), :12 (record); DC/src/resource-mapping/ssnUpdateWriter.xml. Job: DC/src/META-INF/batch-jobs/DC-SSNUPDATE-WLY.xml. BO: DC/src/gov/state/nextgen/dc/batch/bo/SsnUpdateBO.java:18-20 (doc-comment naming DC-SSNUPDATE-WLY.xml), :39 (SsnUpdateReaderRecord), :51 (SsnUpdateWriterRecord).

bidirectional (outbound request files, inbound response files)

SFTP file exchange (JSch ChannelSftp) with explicit inbound/outbound directories

flat response files identified by name pattern and merged into a single downstream file; five inputs merged: Success Prisoner 40 Qtrs, IES 40 Qtrs, IES Prisoner, EMPI SSN, IES SSN Citizen (keys SUCCESS_PRSN_40QTR, IES_40QTR, IES_PRSN, EMPI_SSN, IES_SSN_CTZN). Layout definitions themselves are NOT in this subtree (BeanIO/fixedformat4j mappings live in the IN/Interfaces module).

batch, pilot-gated (a BATCH_PILOT switch gates SVES flow); no explicit schedule in CPBATCH

customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/SVESEMPIMergeBatchlet.java:50-51 (merge contract comment), :59-75 (injected batch properties successPrison40QtrPath, ies40QtrPath, iesPrisonerPath, empiSSNPath, iesSSNCtzn, action), :89-93 (file-type keys); customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/SFTPCopyBatchlet.java:81-85 (OUTBOUND/INBOUND, SVES_SSN="SVESSSN"), :258; pilot gate customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/decision/CheckPilotIndicator.java:21-27 ("// for SVES and $tars as of Jan 28", BATCH_PILOT property)

bidirectional

SFTP over SSH (JSch), with known-hosts and StrictHostKeyChecking toggles; ChannelExec also available

n/a (transport layer)

per-job

customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/SFTPUtil.java:38-47 (PROPERTY_FILE="[withheld]", SERVER="ETLServer", USER="InfaUser", PORT="MDMPort", KNOWN_HOSTS="KnownHosts", HOST_KEY_CHECK="StrictHostKeyChecking"), :5 (SecurityServiceFactory for credential decryption)

outbound

SOAP over webMethods Integration Server provider (WSDL published in-repo)

WSDL+XSD; SolqRequest{Ssa_request: tran, appl, audit, st_cd, agency, fnm, mnm, lnm, ssn, dob} → SolqResponse{Solqout1..Solqout4, Ssnvs, Ssnvs2, Ssnvs3} (segment-shaped, mirrors SSA fixed-format SOLQ blocks)

real-time, per-individual at application submit; response persisted to CP_IN_SOLQ_VRF

customer-portal/commonApp/gov/state/nextgen/access/business/rules/SolqBO.java:11-20 (Solqout1-4, Ssnvs/2/3, Ssa_request imports); :65-131 request build (tran/appl/audit/st_cd/agency/fnm/mnm/lnm/ssn/dob); :159-238 agency lookup + call + resp_error_cd; :223 CallWebService.callSolqService. WSDL: customer-portal/services/WebContent/WEB-INF/wsdl/GAIES_SSA_wsProvider_processSSA_SOLQ_Port_1.wsdl

Mock-relevant facts
  • WHO INITIATES: IES writes the request file; SSA writes the response file; both sides are pull-by-poll — neither pushes. SYNC/BATCH: batch, fully decoupled — the outbound and inbound actions are independent schedules with no protocol correlation. ACK: none; there is no ack file. Success/failure of the transfer is recorded only by publishBatchLog. SEQUENCING: IES_SSA_OUTBOUND_DAILY_* then, on a later independent poll, SSA_IES_INBOUND_DAILY_* with the matching subject token; correlation is by filename convention + business key. RETRY: none — giveUpAfter=0; on any task failure the executeErrorTask=true flag routes to exclude→move-to-error→publishBatchLogWithNotify→jump. MOCK SHAPE: write a file matching the glob into the inbound staging dir, expect it consumed within one 7200s poll and moved to archive; to simulate failure, make the copy target unwritable and assert the file lands in the error dir plus a notify log.

  • Three response record families: SSNVS (T1 — SSN verification, 21 fields t1-ssn…t1-t16-sts incl. t1-evscde/t1-discde match+discrepancy codes), MBR (T2 — Master Beneficiary Record, ~78 fields: t2-mbp monthly benefit payable, t2-pamt/t2-camt money, t2-hi-begdt/t2-smi-* Medicare Part A/B entitlement dates, t2-buy-ky/t2-tpch buy-in, t2-laf ledger-account-flag code, t2-history repeating group), SSR (T3 — Supplemental Security Record, ~140 fields: t3-iewamt/t3-iesamt earned income, t3-uneinc unearned-income group, t3-efedamt/t3-esupamt federal+state SSI amounts, t3-elivf living arrangement, t3-emedic medicaid-elig code, t3-dencde denial code, t3-alien/t3-alcntry). Request identifier family: ssn, can (claim account number), bic (beneficiary identification code), fnm/mnm/lnm, dob. st_cd fixed="027" is NOT Georgia’s SSA state code — see the Montana-lineage note in the summary; a GA mock must parameterize it.

  • Filename tokens are the mock contract: InSndSVESDlyVerifDat, InSndSVESQlyVerifDat, INSnd40QtrDlyDat, INSndMlySSAPrisonerMatchDat, InRecSvesDlyVerifDat, InRec40QtrDlyDat, InRcvMlySSAPrisonerMatchDat, InRcvSdxDlyDat/InRcvSdxMlyDat/InRcvSdxAnlDat, InSndBenDlyDat/InSndBenMlyDat/InRcvBenMlyDat, InRcvLISDlyResponseDat ([secret-bearing path withheld]:801,:5648,:413,:607,:996,:5067). Naming is inconsistent — several quarterly/monthly jobs are labelled DAILY in the action name (e.g. IES_SSA_OUTBOUND_DAILY_QLY_VERIF); trust the description and the filename token, not the action name. A separate split job IES_SUCCESS_OUTBOUND_DLY_SSA_SVESCITIZEN_SPLITFILE exists (worker-portal/IN/webMethods/IES_SUCCESS_SVESCITIZEN_FILE_11122015).

  • TWO-HOP TOPOLOGY: worker portal calls the IES-hosted SOAP provider processSSA_SOLQ (synchronous), which internally does a plain HTTP form-POST to SSA and blocks. Credentials are pipeline fields (/wsUserName/auth/user, /wsPassword/auth/pass) sourced from the PARAMETER table, not hardcoded in the flow. RESPONSE SEMANTICS A MOCK MUST REPRODUCE: two-level dispatch — first on HTTP status (only 200 proceeds; anything else falls to the fault path), then on the SOLQ record type t1-rectyp ∈ {1,2,3,4} with a $default arm. So a mock needs at least six distinguishable responses: HTTP-non-200, and 200 with each of the five rectyp arms. NO TIMEOUT is configured on the http step and there is NO retry — a hung mock hangs the worker’s request thread.

  • Send (14): ssn, claimAccountNumber, beneficiaryIdentificationCode, lastName/middleInitial/firstName, dateofBirth, sex, title2Request, title14Request, stateAgencyCode, categoryOfAssitance, stateCommunicationCode, exchangeRequestData. Receive (18): svesPrisonerSsn/Name/StateCd/WelfareId, statusCode, prisoner name parts, prisonerId, prisonerDobDt, genderCd, confinementDt, releaseDt, ssaReportDt, reporterName + nested SVEPrisonInfo (facilityName/Addr/City/StateCd/Zip5/Zip4, facilityContactName, facilityPhoneNum, facilityFaxNum, facilityTypeCd). Wrapper docs carry recordProcessed/recordFailed counters + ErrorMessage list — a uniform Deloitte envelope reused across ALL of these batch interfaces.

  • Send (14): ssn, claimaccountnumber, beneficiaryidentificationcode, surname/middleinitial/firstname, dob, sex, titleIIrequest, titleXVIrequest, stateagencycode, categoryofassistance, statecommunicationcode, exchangerequestdata. Receive (13): verifiedSsn, inputSsn, name parts, dob, stateCd, stateData, minimumNumQtr, maximumNumQtr, railroadServiceMonths, conditionCd, qualQtrPatternCd. qualQtrPatternCd is the packed 40-quarter pattern — a mock must emit a deterministic pattern string, not a count.

  • SECRETS: this file and customer-portal/CPBATCH/CP/src/gov/state/nextgen/cp/batch/batchlet/CpRemoteFileClean.java reference credential property NAMES only (TEMP_FILE_HOST / TEMP_FILE_USER / TEMP_FILE_PASSWORD / TEMP_FILE_PASSWORD_SW / TEMP_FILE_KEY_PATH / TEMP_FILE_PATH; InfaUser/InfaPassword) — no values are in source; values come from an external property store via SSPSecurityServiceFactory / SecurityServiceFactory. Recorded as paths only, nothing extracted.

  • Gateway-as-client. targetNamespace 'nsprocessSSA_SOLQ'. This is a fixed-width mainframe layout smuggled through SOAP — canopy’s mock must be built from the SSA record layout (field order and widths), not from loose XML, and the hyphenated element names are not valid Rust/Java identifiers so a rename map is required. Request block carries ssn, bic, can, dob, fnm/mnm/lnm, agency, appl, audit.

  • Directory convention observable in comments: /shared_data/GA_IES_BATCH/BatchFiles/{MODULE}/{inbound|outbound}/data, with the SVES destination being …​/BatchFiles/IN/EMPI_SVES/outbound/data — i.e. CV_INFORM stages the file and hands off into the IN subtree (owned by another agent), so the SVES interface spans both surfaces. Correlation key is an EMPI id, not a case id.

  • Shared-framework code physically present in the customer-portal repo (FW subtree compiles to FW-BATCH.jar). Almost certainly duplicated in worker-portal’s FW, so treat as a shared-surface confirmation rather than CP-exclusive. "$tars" appears alongside SVES as a second pilot-gated interface — name not further resolvable in this subtree.

  • 12,669 hits — 2nd-highest marker. Present in BOTH repos (worker-portal IEWebApp/IN/Common/DA/DC/BATCH; customer-portal bridgesClient/commonApp), so customer portal issues SOLQ too. Role-gated in the UI (ROLE_VIEW_SOLQ, SOLQACCESS — Common/util/DcConstants.java:963,1161), which is a strong signal of restricted-data handling.

  • The gov.state.nextgen.in.bo.SOLQTrigger class is NOT in the tree. A separate, live SOAP path to the same partner exists outside my JMS surface: IN/ejbModule/…​/services/solq/GAIES_SSAWsProviderProcessSSA_SOLQStub.java (operation processSSA_SOLQ) — likely the interface actually in use in Georgia; the JMS path looks superseded.

  • SolqBO.java:84 sets a fixed 'audit' terminal/audit identifier string — value NOT reproduced here; treat as a credential-like constant, path only. Transaction code and state code are literal constants in that same block. SSN is mandatory (SolqBO.java:207 skips the call without it).

  • Distinct from the FDSH SSAComposite path: SOLQ is the direct state-to-SSA query (returns raw MBR/SSR record images), FDSH is the CMS-hub verification service. canopy needs both mocked separately. Field names are SSA’s own abbreviations — preserve them verbatim in fixtures.

  • Counterparty attribution is inferred from the SSN-verification pattern and the parallel EMPI_SVES_SSN_OUT_FILE.txt flow in CV_INFORM, not stated in DC itself. Treat the SSA attribution as probable, the CSV read/write contract as confirmed.

  • INSdxRequestBO is the one file in this surface with positional/fixed-width string building — the fixed-width layouts themselves live in the BATCH module, not here. INSdxSendSOLQTriggerBO shows SDX chaining into a SOLQ real-time call.

  • 8,731 hits. 103 java files in the sves batch package. Also feeds citizenship verification (IES_SUCCESS_OUTBOUND_DLY_SSA_SVESCITIZEN_SPLITFILE) and an EMPI move step (SvesEMPIMoveBatchlet).

  • Config key triad pattern per SOAP partner: <PARTNER>_SERVICE_URL / _NAME_SPACE / _SERVICE_NAME, plus optional _LOG_SWITCH / _XML_SWITCH / _TIME_SWITCH toggles.

  • Only one flow service (processSSA_SOLQ) — a single provider entry point; the four solqout docs are the response record layouts and are the real mock surface.

  • Response parsing keys on recordType at fixed offset 153 to select among 4 response layouts — the highest-value determinism detail for a canopy mock.

  • SPT suffix = 'split' companion job (splits a large federal response file); federal-split-mapping.xml is shared by the 40Q and PRM split jobs.

  • FWBatchFTPOutQ is the generic outbound-FTP dispatch queue — the bridge between the JMS fabric and partner file delivery.

  • Type One vs Type Two vs TypeTwoXrefBen are three distinct response shapes — canopy needs three mock fixtures, not one.

  • SVES also drives an EMPI-linked daily job IN-SVSEMPI-DLY.

SSA — NUMIDENT / EVS / other

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the GTA webMethods ESB (IES_FDSH.wsProvider.SSAComposite; endpoint host redacted); WSDL also declares the SOAP-over-JMS namespace

WSDL 1.1 + NIEM 2.0 XSD — imports http://niem.gov/niem/niem-core/2.0, /proxy/xsd/2.0, /structures/2.0, /usps_states/2.0 and the CMS hub namespaces http://ssac.ee.sim.dsh.cms.hhs.gov, http://codes.ssac…, http://extn.ssac…

real-time (single VerifySSA call during eligibility determination)

worker-portal/IEWebApp/WebContent/wsdl/FDSHServiceIntegration/SSACompositePort_1.wsdl:640 (service IES_FDSH.wsProvider.SSAComposite), :622 (portType SsaCompositePortType), :623 (operation VerifySSA); NIEM imports at :29, :50-54, :494-496, :511; soapjms namespace declared at :2. Config key FDSH_SERVICE_URL in IEApp_Properties/Local/Application.properties. A dev-variant copy (SSAComposite_dev.wsdl) exists in the customer-portal repo

bidirectional

batch file via webMethods ActiveTransfer MFT

fixed-width

daily (IES_SSA_OUTBOUND_DAILY_40_QTRDLY / SSA_IES_INBOUND_DAILY_40_QTRDLY; jobs IN-SN40Q-DLY, IN-RC40Q-DLY)

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/bo/impl/Sves40QSndBOImpl.java:137 ("SSA 40 quarters outbound"); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/chunk/batchlet/SvesEMPIMoveBatchlet.java:38 ("SVES 40 Quarters File Path"); MFT event names in worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v2 and IES_SSA_Inbound; jobs IN-SN40Q-DLY.xml / IN-SN40QMRG-DLY.xml / IN-SN40QSPT-DLY.xml / IN-RC40Q-DLY.xml

bidirectional

batch file via webMethods ActiveTransfer MFT

fixed-width (2151-byte SVES prisoner record)

monthly (IES_SSA_OUTBOUND_DAILY_MLY_PRISONER_MATCH / SSA_IES_INBOUND_DAILY_MLY_PRISONERMATCH)

worker-portal/BATCH/IN/sql-loader-control/InRcvSvesPrisDlyCtl.ctl (POSITION (1:2151)); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/batchlet/SvesProcessBatchlet.java:55 (clearSvesPrisonerStgTable); MFT event names in worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v2

inbound

batch file via webMethods ActiveTransfer MFT

fixed-width

daily (LIS_IES_INBOUND_DAILY_FILE); event also named SSA_IES_INBOUND_LOW_INCOME_SUBSIDY; job IN-RCLIS-DLY

[secret-bearing path withheld] (SSA_IES_INBOUND_LOW_INCOME_SUBSIDY); batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/lis/ (14 files); job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCLIS-DLY.xml

bidirectional

batch file

fixed-width

daily (IN-RCBER-DLY)

worker-portal/Common/src/gov/state/nextgen/common/dao/custom/InBeerDAO.java:234 ("Send BEER to IEVS"); batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/beers/ (10 files); job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCBER-DLY.xml

bidirectional

asynchronous web service (routed through Common/AsyncWSProcessing)

not determined from this surface

not discernible (async request/response)

worker-portal/UI/src/gov/state/nextgen/presentation/view/pageelements/DateOfWtpyResponse.java:13; worker-portal/Common/src/gov/state/nextgen/common/bo/AsyncWSProcessing.java:216

inbound (as a response condition, not a standalone interface)

n/a — appears as a response/disposition code inside SVES and FDSH SSA verification

response text/codes within SVES fixed-width and FDSH NIEM XML

n/a

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/util/InSvesSsnVrfnProcess.java:877 ("Surname matched, but DOB did not match NUMIDENT"); worker-portal/IEWebApp/WebContent/jsp/in/INFHPFdshSSAVerification.jsp:672 ("Input SSN does not exist on Numerical Identification System (Numident)")

bidirectional

SOAP (real-time) via webMethods provider IES_FDSH.wsProvider.SSAComposite

WSDL + NIEM 2.0 XSD (namespaces http://ssac.ee.sim.dsh.cms.hhs.gov, extn.ssac…​, codes.ssac…​, niem-core/2.0, structures/2.0, usps_states/2.0); single operation VerifySSA

real-time

worker-portal/IEWebApp/WebContent/wsdl/FDSHServiceIntegration/SSACompositePort_1.wsdl:2 (targetNamespace + CMS DSH namespaces), :622-623 (portType SsaCompositePortType, operation VerifySSA); customer-portal copy at customer-portal/bridgesClient/META-INF/wsdl/SSAComposite_dev.wsdl with NIEM subset under META-INF/wsdl/niem_schemas/verifySSACriteria/; generated client at customer-portal/bridgesClient/gov/hhs/cms/dsh/sim/ee/ssac/

inbound

batch file

BeanIO fixed-length, shares bendex-rcv mapping file under a separate stream BeersRcvRecords; also split via federal-split-mapping.xml (8 records, 3000-char)

daily (IN-RCBER-DLY)

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCBER-DLY.xml (mappingFile resource-mapping/bendex-rcv-dly-mapping.xml, streamName BeersRcvRecords); worker-portal/BATCH/IN/src/resource-mapping/federal-split-mapping.xml (classes …​in.batch.bendex.util.BeersRcvRecord)

outbound request / inbound response

SOAP via webMethods ESB; namespace host observed as a federal CMS DSH simulator domain in the SIT config

WSDL+XSD; provider path IES_FDSH.wsProvider.SSAComposite/SSACompositePort

real-time

worker-portal/IEApp_Properties/Local/Application.properties:285-288 (FDSH_SERVICE_URL, FDSH_NAME_SPACE, FDSH_SERVICE_NAME); worker-portal/IEApp_Properties/local_batch/Application.properties:62-65 and 75-78 (duplicated FDSH block)

outbound

SOAP over HTTPS via webMethods IES_FDSH.wsProvider.SSAComposite / DHS_IES.Providers.SSAComposite

WSDL + NIEM 2.0 XSD set (exchange.xsd v1.5, extension.xsd, codes-schema.xsd, niem-core 2.0, structures 2.0, usps_states 2.0, proxy/xsd 2.0, appinfo 2.0). Single operation VerifySSA (SSACompositeRequest → SSACompositeResponse). Request: SSACompositeRequestType → SSACompositeIndividualRequestType {Person{PersonName{Given/Middle/SurName}, PersonSSNIdentification, PersonBirthDate}} plus per-verification switches RequestCitizenshipVerificationIndicator, RequestIncarcerationVerificationIndicator, RequestTitleIIMonthlyIncomeVerificationIndicator, RequestTitleIIAnnualIncomeVerificationIndicator, RequestQuartersOfCoverageVerificationIndicator, RequestTitleIIMonthlyIncomeDate, RequestTitleIIAnnualIncomeDate. Response: SSACompositeIndividualResponseType {ResponseMetadataType, SSAResponseType, SSNVerificationCode, DeathConfirmationCode, SSAIncarcerationInformation{SupervisionFacility{FacilityName, FacilityLocation, FacilityContactInformation, FacilityCategoryCode}}, SSATitleIIMonthlyIncome/SSATitleIIMonthlyInformationType, SSATitleIIYearlyIncome, SSAQuartersOfCoverage{QualifyingYearAndQuarter, LifeTimeQuarterQuantity}, BenefitCreditedAmount, NetMonthlyBenefitCreditedAmount, OngoingMonthlyBenefitCreditedAmount, OngoingMonthlyOverpaymentDeductionAmount, OngoingPaymentInSuspenseIndicator, InmateStatusIndicator}

real-time, per individual at application/renewal

WSDL: customer-portal/bridgesClient/META-INF/wsdl/SSAComposite_dev.wsdl:1 (targetNamespace http://extn.ssac.ee.sim.dsh.cms.hhs.gov), :14-22 (portType SsaCompositePortType / VerifySSA), :34-36 (service DHS_IES.Providers.SSAComposite; soap:address contains a hard-coded internal IP:port — path/line recorded, value deliberately not reproduced). Schemas: bridgesClient/META-INF/wsdl/niem_schemas/verifySSACriteria/exchange.xsd:1-31 (documentation block enumerating the 6 verifications and version history), extension.xsd:34-500 (complexTypes), :721-910 (elements). JAXB: bridgesClient/gov/state/nextgen/ejb/business/services/fdsh/ (IES_FDSHWsProviderSSACompositeStub.java, SSACompositeRequestType.java, SSAResponseType.java, SSATitleIIMonthlyIncomeType.java, SSAQuartersOfCoverageType.java, DeathConfirmationCode.java, InmateStatusIndicator.java, …) and gov/hhs/cms/dsh/sim/ee/. Call: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:501 (validateSSACompositeWebService), :511 (AppConstants.SSA_COMPOSITE_WEBSERVICE_URL). Key: sharedApp/…​/AppConstants.java:3878 = "SSACOMPOSITEWebService"; endpoint at framework/properties/config/production_env.properties:194

inbound (IES exposes) → fans out to federal hub

SOAP over HTTPS (webMethods wsProvider)

WSDL + NIEM 2.0 XSD

real-time, synchronous request/reply

worker-portal/IEWebApp/WebContent/wsdl/FDSHServiceIntegration/SSACompositePort_1.wsdl — portType SsaCompositePortType, op VerifySSA, service IES_FDSH.wsProvider.SSAComposite, document/literal, MEP input+output; namespaces http://ssac.ee.sim.dsh.cms.hhs.gov, http://extn.ssac.ee.sim.dsh.cms.hhs.gov, http://codes.ssac.ee.sim.dsh.cms.hhs.gov, http://niem.gov/niem/niem-core/2.0, /structures/2.0, /proxy/xsd/2.0, /usps_states/2.0

outbound

SOAP over GTA ESB :6410, IS package IES_FDSH, services wsProvider.SSAComposite and wsProvider.AccountTransfer/AccountTransferPort

WSDL+XSD (NIEM-derived)

real-time verification call

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/fdsh/IES_FDSHWsProviderSSACompositeStub.java; common/src/gov/state/nextgen/in/bo/InFdshSsaCmpsBO.java; ejbModule/gov/state/nextgen/ejb/business/services/in/INFHPFDSHSessionEJBBean.java; ~230 JAXB type classes under ejbModule/…​/services/fdsh/

inbound

batch file

fixed-width (reuses bendex-rcv-dly-mapping.xml)

daily

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCBER-DLY.xml — package gov.state.nextgen.in.batch.beers, mappingFile resource-mapping/bendex-rcv-dly-mapping.xml

inbound

batch file

not read (no BeanIO mapping referenced in the job XML)

annual

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-COLAUI-ANL.xml — package gov.state.nextgen.in.batch.cola

inbound

batch file

fixed-width; lisnotouch-rcv-dly-mapping.xml

daily

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCLIS-DLY.xml (package …in.batch.lis, mappingFile resource-mapping/lisnotouch-rcv-dly-mapping.xml); worker-portal/BATCH/IN/src/resource-mapping/lisnotouch-rcv-dly-mapping.xml format="fixedlength"

inbound

batch file (second BeanIO stream carried in the BENDEX receive mapping)

fixed-width 310-byte, 34 fields: replySSASSN, surname, givenName, middleInitial, sex, dOBProofCode, agencyCode, sourceCode, categoryofAssistanceCode, stateControlData, ievsAgencySubcode, stateInputBIC, stateInputSSN, ssARemarks, directWireInputCode, recordProcessingDate, dateofBirth, ssaSecondSurname, employerIdentificationNumber, ssaReportingType, ssaReportingYear, …

daily (IN-RCBER-DLY)

worker-portal/BATCH/IN/src/resource-mapping/bendex-rcv-dly-mapping.xml (stream BeersRcvRecords, record BeersRcvRecord, 34 fields, reclen 310); record class lives under bendex: worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/bendex/util/BeersRcvRecord.java; processing package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/beers/ (BeersRcvReader/Processor/Writer, BeersRcvBoImpl)

inbound

batch file (BeanIO fixedlength)

1000B fixed, 60 fields: beneficiary block (benSsn, benHicn, name parts, benDobDt, benGenderCd, benBurialExpn), spouse block (spouseSsn, spouseHicn, names, dob, burial expense), address block (4 lines, city, state, zip5/zip4), plus income/resource fields

daily (IN-RCLIS-DLY)

worker-portal/BATCH/IN/src/resource-mapping/lisnotouch-rcv-dly-mapping.xml (stream LISNoTouchRcvRecords, record LisReceiverRecord, 60 fields, reclen 1000); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCLIS-DLY.xml:72-73; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/lis/bo/impl/LisRcvBOImpl.java:14-28 (creates ArApplicationForAid + T1001AppRqst/T1002AppDtl/T1004AppIndv/T1007AppInCurd/T1019AppInMedE/T1021AppInEmpl/T1023AppInSelfe/T1024AppInUei/T1028AppInMedcr/T1053AppProgram/T1058AppInLqdAsset rows)

internal

database-only batch (no file, no service call)

n/a — chunk over unearned-income rows driven by job parameters incomePercentage and incomeTypeCds

annual (IN-COLAUI-ANL)

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-COLAUI-ANL.xml:14-15 (incomePercentage, incomeTypeCds job parameters), :37,58,65,78,87 (ColaUnearnedIncomeBatchlet, Reader/Processor/Writer, ColaPartitionMapper); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/cola/util/ColaUnearnedIncomeVO.java

outbound

SOAP

WSDL+XSD; SSACompositeRequestType → VerifySSAResponseE

real-time, on-demand identity/SSN verification

customer-portal/commonApp/gov/state/nextgen/access/business/rules/SSAWebServiceBO.java:10-11 (imports gov.state.nextgen.ejb.business.services.fdsh.SSACompositeRequestType, VerifySSAResponseE); :9 CallWebService import. Client stub: customer-portal/bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:501 validateSSACompositeWebService

Mock-relevant facts
  • GAP: the implementing webMethods package IES_FDSH is NOT present in the 79-zip corpus, so the internal orchestration behind VerifySSA (whether it calls the federal hub synchronously, or reuses SOLQ) is UNKNOWN from this surface. What IS established: a single synchronous doc/literal op with no callback MEP, so from the caller’s side the mock is a plain request/reply on NIEM 2.0 payloads.

  • Gateway-as-client. targetNamespace at :2 embeds an internal webMethods hostname. Single operation, very large schema (644 lines of WSDL plus imported NIEM) — the canopy mock needs NIEM-shaped request/response fixtures, not ad-hoc XML. The presence of xmlns:soapjms suggests a JMS transport variant was at least contemplated; only the HTTPS port is bound in this file.

  • 2,270 FDSH hits. THIS is the 'HUB' — the standalone \bHUB\b marker returned no independent partner (its hits are NIEM hix schema enumerations plus a plotly.js false positive). Also present: an accountTransfer4IES.wsdl (see Account Transfer finding) and NIEM hix-core/hix-ee/hix-pm schemas under worker-portal/IN/ejbModule/META-INF/xsd/XMLSchemas/.

  • exchange.xsd’s own documentation names the six sub-verifications: SSN, Citizenship, Death, Incarceration, Title II Monthly Income, Title II Annual Income, Quarters of Coverage. Highest-fidelity mock target in the surface — the NIEM schemas are complete and self-contained.

  • HICN (Medicare claim number) present — treat as PHI. This feed AUTO-CREATES a full application (1926-line BO), so the canopy mock must produce records that exercise application-creation, not just a match.

  • Listed for completeness: the cola package is NOT a partner interface — it is an internal annual mass-adjustment of unearned income. No mock needed; canopy needs the rule, not a fixture.

  • Only 4 literal BEER hits — the marker is low-frequency but the interface is real (dedicated beers batch package + InBeerDAO). Treat as FTI for mock-data policy.

  • Only 2 hits — thin surface. A UI page element tracks 'Date of WTPY Response', so it is worker-visible. Needs a dedicated dig; I did not trace the actual transport.

  • 7 hits total. NOT a separate partner interface — it is the SSA-side system referenced in SVES/FDSH failure messages. Useful for mock response-code fidelity.

  • Only 145 lines in-surface — the BO is a thin wrapper; JAXB types live in the fdsh package outside commonApp. Distinct from SOLQ (separate stack).

  • FDSH block is declared twice in the batch profile (lines 62-65 and 76-78) — last-wins duplicate key hazard worth mirroring in mocks/tests.

  • beers package has no mapping file of its own — layout is defined in the BENDEX receive mapping; the two feeds arrive together.

  • Distinct from the GA Dept. of Corrections prisoner feed (see separate DOC finding) — Gateway consumes both.

  • IN-RCBER-DLY is one of only three batch-job XMLs in worker-portal that mention PGP/FTP.

  • Two distinct FDSH endpoints observed on ESB:6410 — SSAComposite and AccountTransfer.

  • 'notouch' in the mapping name implies auto-processed leads with no worker touch.

  • Implemented inside the sves batch package rather than its own package.

  • Inbound-only.

GDOL — UI benefits & quarterly wages

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

inbound (this WSDL is a Gateway-published facade over DOL data already landed in IES); outbound acquisition happens on a separate channel

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1 with two payload namespaces: …​/uibenefit/webServiceEntities and …​/wage/webServiceEntities

real-time for the inquiry; the underlying DOL data load is weekly (batch jobs IN-RCDOL-WLY, IN-RCDOLPUB-WLY, IN-RCGDOL-WLY, IN-RCGDOLSPT-WLY)

worker-portal/IEWebApp/WebContent/wsdl/DOLServiceIntegration/UIBenefitsWagesInquiryDOL.wsdl:299 (service UIBenefitWageInquiryDOLService), :263 (portType UIBenefitWageInquiryDOL), :264 op unemploymentBenefitInquiry, :270 op wageInquiry; targetNamespaces at :1, :10, :65. Server impl worker-portal/IEWebApp/src/gov/state/nextgen/business/ejb/services/st/dol/UIBenefitWageInquiryDOLImpl.java:13-16 (@WebService endpointInterface=…UIBenefitWageInquiryDOL) reading InDolUcbRespCollection / InDolWagesInfoCollection; registered in sun-jaxws.xml (endpoint UIBenefitWageInquiryDOL, url-pattern=/UIBenefitWageInquiryDOL). Weekly batch evidence: worker-portal/BATCH/IN/src/batch-fast4j-properties/IN-RCDOL-WLY-*.properties

bidirectional (send inquiry, receive claim/wage detail)

batch file → JAXB record

fixed-position layout; single ns http://www.example.org/MisticsSchema for both claim and wage exchanges

batch; wage data is quarter-keyed (quater field), claim data is weekly-payment granularity

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{MisticsInfoDocument,MisticsSendInfo,MisticsRcvInfo,MisticsWageInfoDocument,MisticsWageSendInfo,MisticsWageRcvInfo}.java; MisticsRcvInfo.java:57

bidirectional

BOTH: SOAP real-time inquiry (UIBenefitWageInquiryDOLService) AND batch file via webMethods MFT (SQL*Loader into IN_DOL_WAGES_INFO_STG)

WSDL+XSD for the real-time path (operations unemploymentBenefitInquiry, wageInquiry); fixed-width for the batch path (~385-byte quarterly wage record)

real-time for inquiry; weekly UI benefit file (IES_DOL_OUTBOUND_WEEKLY_UNEMPLOYMENT_BENEFIT_FILE / DOL_IES_INBOUND_WEEKLY_UNEMPLOYMENT_BENEFIT_FILE); quarterly wage inquiry (IES_DOL_OUTBOUND_QUARTERLY_WAGE_INQUIRY_FILE); jobs IN-RCDOL-WLY, IN-RCDOL-QLY, IN-SNDOL-WLY, IN-SNDOL-QLY, IN-RCDOLPUB-WLY

worker-portal/IEWebApp/WebContent/wsdl/DOLServiceIntegration/UIBenefitsWagesInquiryDOL.wsdl:263-270,299 (portType UIBenefitWageInquiryDOL, both operations, service); customer-portal copy at customer-portal/bridgesClient/UIBenefitsWagesInquiryDOL.wsdl; batch layout worker-portal/BATCH/IN/sql-loader-control/InRcvDolQlyCtl.ctl (IN_DOL_WAGES_INFO_STG, POSITION (361:385)); batch package …​/in/batch/dol/ (41 files); webMethods packages GAIES_DOL*.zip

bidirectional

batch file; SQL*Loader into IN_WOTC_RECEIVE_STG

fixed-width

weekly (IN-RCGDOL-WLY, IN-RCGDOLSPT-WLY)

worker-portal/BATCH/IN/sql-loader-control/InRcvGdolCtl.ctl (INTO TABLE IN_WOTC_RECEIVE_STG, POSITION (16:17)); batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gdol/ (27 files); jobs IN-RCGDOL-WLY.xml, IN-RCGDOLSPT-WLY.xml

bidirectional

batch file + SQL*Loader staging

BeanIO fixed-length: wotc-snd-wly-mapping.xml (1 record / 70 fields / 7899-char — the widest record in the tree), gdol-rcv-mapping.xml (1/5/258); staging IN_WOTC_RECEIVE_STG

weekly (IN-SNWOT-WLY, IN-SNWOTMRG-WLY, IN-RCGDOL-WLY, IN-RCGDOLSPT-WLY)

worker-portal/BATCH/IN/src/resource-mapping/wotc-snd-wly-mapping.xml (stream WotcSndRecords); worker-portal/BATCH/IN/src/resource-mapping/gdol-rcv-mapping.xml (stream GdolRcvRecordStream); worker-portal/BATCH/IN/sql-loader-control/InRcvGdolCtl.ctl

bidirectional (outbound SOAP inquiry; Gateway also EXPOSES an inbound SOAP endpoint of the same name; plus batch wage files)

SOAP via webMethods ESB (outbound); JAX-WS endpoint (inbound); batch file (wage/UCB)

WSDL+XSD provider path GAIES_DOL.wsProvider.UIBenefitWageInquiryDOL/…​_Port; BeanIO fixed-length dolwage-rcv-qly-mapping.xml (1/19/385), dolucb-rcv-wly-mapping.xml (1/19/289), dolpub-rcv-wly-mapping.xml (1/19/292), dol-snd-mapping.xml (2/4/11)

real-time SOAP; weekly receive (IN-RCDOL-WLY, IN-RCDOLPUB-WLY); quarterly wage (IN-RCDOL-QLY, IN-SNDOL-QLY, IN-SNDOL-PT-QLY); weekly send (IN-SNDOL-WLY)

worker-portal/IEApp_Properties/Local/Application.properties:221-228 (DOL_SERVICE_URL, DOL_NAME_SPACE, DOL_SERVICE_NAME, DOL_WAGE_SERVICE_URL, DOL_LOG_SWITCH, DOL_XML_SWITCH, DOL_TIME_SWITCH); worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:25-28 (inbound endpoint UIBenefitWageInquiryDOL, url-pattern /UIBenefitWageInquiryDOL); worker-portal/BATCH/IN/src/resource-mapping/dolwage-rcv-qly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvDolQlyCtl.ctl

outbound

SOAP; two routes — direct worker-portal service /cpsecure/UIBenefitWageInquiryDOL?wsdl and webMethods GAIES_DOL.wsProvider.UIBenefitWageInquiryDOL

WSDL + XSD, service UIBenefitWageInquiryDOLService, portType UIBenefitWageInquiryDOL, 2 operations. unemploymentBenefitInquiry: input getUIBenefitInfoInput{Requestor{UserID, AgencyCode}, Individuals{SSN:int, NumberOfWeeksRequested:int}} → output {SSN, ReturnCode, ClaimantMailingAddress{FirstName,LastName,MiddleInitial,StreetAddress,City,State,Zip}, BenefitPayments{BeginDate,EndDate,WeeklyBenefitAmount,TotalBenefitAwarded,BenefitExhaustDate,BenefitPaidDate,AvailableBalance,ExtendedBenefitIndicator,CheckDate,CheckAmount}, DOLUIBenefitIndicator}. wageInquiry: input getWagesInput{Requestor, Individuals{SSN:int, Number_of_Quarters:int}} → output {SSN, ReturnCode, DOL_Wage_Indicator, EmployerInfo{Employer_Name}, WageInfo{Qtr_Yr, Surname_Prefix, Wage_Amount}}

real-time, per individual

WSDL: customer-portal/bridgesClient/UIBenefitsWagesInquiryDOL.wsdl:1 (definitions), :10-125 (three schema namespaces uibenefit/wage/dol), :14-61 (UI benefit types), :68-122 (wage types), :129-235 (wrapper elements), :263-292 (portType + binding), :299-301 (service + soap:address). Calls: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:759 (getWageInquiryDOL), :814 (getUIBenefitInquiryDOL), :1603 (unemploymentBenefitInquiry), :1645 (wageInquiry). JAXB: bridgesClient/gov/state/nextgen/ejb/business/services/dol/ (+ /benefit, /wages) and gov/state/nextgen/business/ejb/services/st/dol/ (+ /uibenefit/webserviceentities, /wage/webserviceentities). Endpoints: framework/properties/config/production_env.properties:197 (DOLWebWPService), :198 (DOLWebService)

bidirectional

batch file over SFTP via MFT; plus a synchronous SOAP inquiry service

flat data file; WSDL + XSD for the real-time ops

weekly (UI benefits), quarterly (wage inquiry); real-time for the inquiry service

Batch: worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:251 (IES_DOL_OUTBOUND_WEEKLY_UNEMPLOYMENT_BENEFIT_FILE), :3295 (DOL_IES_INBOUND_WEEKLY_UNEMPLOYMENT_BENEFIT_FILE), :5440 (IES_DOL_OUTBOUND_QUARTERLY_WAGE_INQUIRY_FILE); [withheld]:967 (DOL_IES_INBOUND_WAGE_BATCH_RESPONSE). Real-time: worker-portal/IEWebApp/WebContent/wsdl/DOLServiceIntegration/UIBenefitsWagesInquiryDOL.wsdl — service UIBenefitWageInquiryDOLService, ops unemploymentBenefitInquiry + wageInquiry, document/literal, MEP input+output. webMethods GAIES_DOL package canonical header: direction=Outbound

bidirectional (SOAP outbound query; batch file both ways)

SOAP + batch file over SFTP/FTP (webMethods ActiveTransfer/MFT)

WSDL+XSD (getUIBenefitInfo, getWages) for real-time; flat data files for batch

real-time (SOAP); weekly (UI benefit file both directions); quarterly (wage inquiry out, wage batch response in)

SOAP: worker-portal/IN/webMethods/GAIES_DOL_Full_v1.zip → ns/GAIES_DOL/wsConsumer/DOL_getUIBenefitInfo_/connectors/getUIBenefitInfoPort_getUIBenefitInfo, ns/GAIES_DOL/wsConsumer/DOL_getWages_/connectors/getWages_getWages, ns/GAIES_DOL/services/{unemploymentBenefitInquiry,wageInquiry}, ns/GAIES_DOL/wsProvider/UIBenefitWageInquiryDOL. Batch: worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 (IES_DOL_OUTBOUND_WEEKLY_UNEMPLOYMENT_BENEFIT_FILE, IES_DOL_OUTBOUND_QUARTERLY_WAGE_INQUIRY_FILE, DOL_IES_INBOUND_WEEKLY_UNEMPLOYMENT_BENEFIT_FILE) and [withheld] (DOL_IES_INBOUND_WAGE_BATCH_RESPONSE)

outbound

SOAP via webMethods, IS package GAIES_DOL, service wsProvider.UIBenefitWageInquiryDOL (Axis2 stub); two operations getUIBenefitInfo and getWages

WSDL+XSD

real-time inquiry; wage data is quarter-keyed (quarterly source)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/dol/GAIES_DOLWsProviderUIBenefitWageInquiryDOLStub.java; ejbModule/…​/dol/{GetUIBenefitInfoInput,GetUIBenefitInfoOutput,GetWagesInput,GetWagesResponse,WageInquiry,UnemploymentBenefitInquiry}.java; ejbModule/…​/dol/{benefit,wages,pub}/; common/src/gov/state/nextgen/in/bo/{INDolResponseBO,INDolUcbBO,INDOLWageBO,INDolWageInquiryBO,DolUnEmpBO}.java; ejbModule/…​/in/{INUnemploymentBenefitSessionEJBBean,INQTRViewQtrEmpSessionEJBBean,INWageMatchSessionEJBBean}.java; webMethods/GAIES_DOL*.zip (7 versions)

bidirectional

batch file + SQL*Loader stage

fixed-width; dolucb-rcv-wly-mapping.xml, dolwage-rcv-qly-mapping.xml, dolpub-rcv-wly-mapping.xml, dol-snd-mapping.xml

weekly (UCB, public), quarterly (wages)

jobs …​/batch-jobs/{IN-RCDOL-WLY,IN-RCDOL-QLY,IN-RCDOLPUB-WLY,IN-SNDOL-WLY,IN-SNDOL-QLY,IN-SNDOL-PT-QLY}.xml; loader worker-portal/BATCH/IN/sql-loader-control/InRcvDolQlyCtl.ctl → IN_DOL_WAGES_INFO_STG

bidirectional

batch file + SQL*Loader stage

fixed-width; gdol-rcv-mapping.xml, wotc-snd-wly-mapping.xml

weekly

jobs …​/batch-jobs/{IN-RCGDOL-WLY,IN-RCGDOLSPT-WLY,IN-SNWOT-WLY,IN-SNWOTMRG-WLY}.xml (package gov.state.nextgen.in.batch.gdol); loader worker-portal/BATCH/IN/sql-loader-control/InRcvGdolCtl.ctl → IN_WOTC_RECEIVE_STG

bidirectional

batch file (BeanIO fixedlength both ways)

outbound request 11B/2 fields (ssn, noOfWeeks); inbound response 289B/19 fields (respCode, ssn, uiBenBeginDt, uiBenEndDt, weeklyBenAmt, totBenAwarded, benExhaustDt, benPaidDt, availBal, extendedBenInd, checkDt, checkAmt, name parts, street/city/state/zip)

weekly (IN-SNDOL-WLY out, IN-RCDOL-WLY in)

worker-portal/BATCH/IN/src/resource-mapping/dol-snd-mapping.xml (streams DolUcbSndRecords + DolWagesSndRecords); dolucb-rcv-wly-mapping.xml (DolUcbRcvRecord, 19 fields, reclen 289); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/dol/chunk/reader/DolRcvFileReader.java; …​/dol/batchlet/DolRcvBatchlet.java, DolRcvPartitionMapper.java

bidirectional

batch file (BeanIO fixedlength); inbound quarterly file also has a SQL*Loader control

outbound request 10B/2 fields (ssn, noOfQuarters); inbound response 385B/19 fields (respCode, ssn, employerName, location address block incl. phone, mailing address block incl. phone, qtrYr, wageAmt, potUiAmt, surnamePrefix)

quarterly (IN-SNDOL-QLY, IN-SNDOL-PT-QLY out; IN-RCDOL-QLY in)

worker-portal/BATCH/IN/src/resource-mapping/dolwage-rcv-qly-mapping.xml (DolWagesRcvRecord, reclen 385); dol-snd-mapping.xml (DolWagesSndRecord, reclen 10); worker-portal/BATCH/IN/sql-loader-control/InRcvDolQlyCtl.ctl; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/dol/chunk/processor/DolWagesSndStgProcessor.java

inbound

batch file (BeanIO fixedlength)

292B/19 fields (respCode, ssn, benefitTypeCode, uiBenBeginDt, uiBenEndDt, weeklyBenAmt, totBenAwarded, benExhaustDt, benPaidDt, availBal, checkDt, checkAmt, name parts, address)

weekly (IN-RCDOLPUB-WLY)

worker-portal/BATCH/IN/src/resource-mapping/dolpub-rcv-wly-mapping.xml (DolPubRcvRecord, reclen 292); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/dol/bo/impl/DolPubRcvBOImpl.java:41 ("Extended Benefits data is mandatory" validation)

bidirectional

batch file; inbound SQL*Loader into IN_WOTC_RECEIVE_STG, outbound BeanIO fixedlength with a merge job

inbound 258B/5 fields (dolSssnNum 1-9, dolYear 10-13, dolMonth 14-15, dolDay 16-17, filler); outbound 7899B/70 fields (ssn, matchIndicator, statusCd, disabVetInd, name parts, dob, parsed residence-address components, plus program/benefit history blocks)

weekly (IN-RCGDOL-WLY and IN-RCGDOLSPT-WLY in; IN-SNWOT-WLY / IN-SNWOTMRG-WLY out)

worker-portal/BATCH/IN/src/resource-mapping/gdol-rcv-mapping.xml:1-13; wotc-snd-wly-mapping.xml (WotcSndRecord, 70 fields, reclen 7899); worker-portal/BATCH/IN/sql-loader-control/InRcvGdolCtl.ctl:1-14 (INTO TABLE IN_WOTC_RECEIVE_STG, POSITION spans, MATCH_IND/PROCESS_FLAG CONSTANT 'N', CREATE_USER_ID CONSTANT "IN-RCGDOL-WLY"); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gdol/bo/impl/GdolRcvBoImpl.java:3-15 (BiFsDetail, BiTanfDetail, DcIndvAbawd, InWotcReceive/Output cargos)

outbound

SOAP (two paths: direct wsdlUrl and bridged/ESB variant)

WSDL+XSD; GetWagesInput → GetWagesResponse; GetUIBenefitInfoInput → GetUIBenefitInfoOutput

real-time, on-demand during application/renewal income verification

customer-portal/commonApp/gov/state/nextgen/access/business/rules/DOLWebServiceBO.java:10-13 (dol.GetUIBenefitInfoInput/Output, GetWagesInput/GetWagesResponse); call sites :66 getWageInquiryDOL, :139 wageInquiry, :214 getUIBenefitInquiryDOL, :288 unemploymentBenefitInquiry

Mock-relevant facts
  • Claim send (7): ssn, firstName, lastName, middleInitial, suffixName, dateOfBirth, requestDate. Claim receive (17): seqNum, name parts, dateOfBirth, claimEffectiveDate, claimFilingDate, claimStatus, continuedClaimFilDate, paymentDate, weeklyPaymentAmt, paymentStatus, reductionAmount, reductionType, claimBalanceAmt, nonPayReason. Wage send (8): indvId, ssn, name parts, dateOfBirth, requestDate. Wage receive (11): indvId, seqNum, name parts, dateOfBirth, quater (sic), employerName, grossWageAmount, ssn. Code tables: claimStatus, paymentStatus, reductionType, nonPayReason. The Georgia equivalent is GDOL — see the sibling WSDL IEWebApp/WebContent/wsdl/DOLServiceIntegration/UIBenefitsWagesInquiryDOL.wsdl (real-time SOAP, outside my XSD surface) which is almost certainly the GA-live replacement for this batch interface.

  • TEXTBOOK REQUEST/RESPONSE-BY-SEPARATE-FILE: IES_DOL_OUTBOUND_QUARTERLY_WAGE_INQUIRY_FILE (request) is answered by DOL_IES_INBOUND_WAGE_BATCH_RESPONSE (response) — the ONLY inbound action in the estate whose name literally says RESPONSE, and even it has no correlation identifier at the transport level. The UI-benefit pair is symmetric weekly out/in. Mocks should support both the batch echo and the synchronous inquiry, since the same data is reachable two ways.

  • Direction is the subtle one: the WSDL’s soap:address is a localhost placeholder and it is registered as a SERVER endpoint, and the impl reads IES-resident DOL collections — so Gateway serves DOL-derived data to consumers (customer portal / mobile). Separate outbound config keys DOL_SERVICE_URL and DOL_WAGE_SERVICE_URL exist for the acquisition side. A copy of this WSDL also lives in the customer-portal repo (bridgesClient).

  • SOAP message shapes: tns:requesterInformation, tns:individualInfo/individuals, tns:mailingAddress, tns:uiBenefitInfo/uiBenefitDetails, tns:employerInfo, tns:wage/tns:wageInfo, tns:response. Batch filename tokens InSndDOLUnemploymentWlyDat, InSndDOLWageQlyDat, InRcvDOLUnemploymentWlyDat, InRcvDOLWageQlyDat (see [secret-bearing path withheld]:8364 and :4874).

  • 'SPT' variant is a split/supplemental receive (GdolSptRcvReader/Processor/Writer, SplitGdolRecordsVO). The 7899-byte outbound is the widest record on this surface — a strong candidate for a generated fixture rather than a hand-written one.

  • Two parallel client packages (business.ejb.services.st.dol vs ejb.business.services.dol) correspond to the worker-portal-proxied vs ESB-direct routes; identical semantics.

  • Two duplicate op pairs exist (direct vs. bridge-routed); a mock should expose both or normalize to one. Endpoint from FwConfigurationManager env property.

  • ejbModule/…​/dol/pub/INPandemicBenefitSessionEJBBean.java is a pandemic-era UI extension (PUA/PUC) — likely dead weight for canopy.

  • Differs from UCB by having benefitTypeCode and no extendedBenInd — two distinct layouts that must not be conflated in mocks.

  • 1,329 \bDOL\b hits. A dual-transport partner — mock both the real-time SOAP inquiry and the weekly/quarterly files.

  • Distinct from the main DOL wage/UI interface — separate gdol package and separate staging table.

  • 'PT' quarterly variant (IN-SNDOL-PT-QLY) appears to be a partitioned/second-pass send.

  • Single receive job family with a partition mapper; DolPreProcessor stages before send.

  • Rare bidirectional-SOAP partner: same logical operation is both consumed and served.

DECAL / CAPS (childcare)

Direction Transport Format Cadence Evidence

bidirectional (CPP → IES submits work hours; IES → CPP / CPP → IES searches)

SOAP web service

WSDL+XSD; targetNamespace http://cpp.st.services.ejb.business.nextgen.state.gov/webServiceEntities; WSDL at CPPServiceIntegration/CPPServiceIntegration.wsdl

real-time; data is monthly-keyed (enrollmentMonth, providerTimesheetMonth)

worker-portal/IEWebApp/WebContent/wsdl/CPPServiceIntegration/ — CPP_ClientSearch_Request.xsd, CPP_ClientSearch_Response.xsd, CPP_TANF_WorkHoursDetails.xsd (53 ln), CPP_TANF_WorkHours_Response.xsd, CPP_VendorSearch_Request.xsd, CPP_VendorSearch_Response.xsd, getTanfHours_Request.xsd, getTanfHours_Response.xsd (101 ln)

bidirectional (CapsEaRcv* inbound TC120/200/300; CapsEaSnd* outbound TE500/600/700)

batch file → JAXB record

fixed-position layout with a shared 9-field correlation header; ns http://www.example.org/CAPSEA{Rcv,Snd}Schema + …​/CAPSEAHeader

batch

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{CapsEaHeader,CapsEaRcvDocument,CapsEaRcvRecord,CapsEaRcv120Info,CapsEaRcv200Info,CapsEaRcv300Info,CapsEaSndDocument,CapsEaSndRecord,CapsEaSnd500Info,CapsEaSnd600Info,CapsEaSnd700Info}.java

inbound

batch file → JAXB record

fixed-position layout with a 5-field header; ns http://www.example.org/CAPSFCRcvSchema + …​/CAPSFCHeader

batch

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{CapsFcHeader,CapsFcRcvDocument,CapsFcRcvRecord,CapsFcRcv100Info,CapsFcRcv200Info,CapsFcRcv300Info,CapsFcRcv400Info,CapsFcRcv600Info,CapsFcRcv700Info,CapsFcRcv800Info}.java; CapsFcRcv300Info.java:44

bidirectional

mixed — batch file → JAXB record (match/payment) and request/response document (copayment, referral)

ns http://www.example.org/INCCUBSMatchTANF{Snd,Rcv}Schema, …​/CCUBSCCPayRcvSchema, …​/CCUBSCoPayment, …​/ChildCareReferral

batch for match/payment (benefitMonth-keyed); request/response for copayment + referral

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{CCUBSMatchTANFSndInfo,CCUBSMatchTANFRcvInfo,CCUBSCCPayTANFRcvInfo,ChildCareCopaymentDocument,ChildCareCopaymentReq,ChildCareCopaymentRes,ChildCareCopaymentList,ChildCareCopaymentInformation,ChildCareReferralReq,ChildCareReferralRes,ChildInformation,ChildInformationList}.java; CCUBSMatchTANFSndInfo.java:50

bidirectional

batch file

fixed-width — InDecalRcvRecord with an InDecalRcvConstants layout constants class

not stated in the job id; associated with weekly/monthly childcare jobs (CO-RENEWALCC-MLY, CO-CCENRREM-WLY, IN-CCENR-WLY, IN-CCDISENR-WLY, IN-CCINFRT-DLY)

batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/decal/ — util/InDecalRcvRecord.java:1, util/InDecalRcvConstants.java:1, chunk/reader, chunk/processor, chunk/writer, bo/impl; role/task constants at worker-portal/Common/src/gov/state/nextgen/sf/util/SFUtilConstants.java:840-842 ("DECAL FS Renewals- Child Care", "DECAL Temp FS Ren CC", "DECAL - Reviewer - Child Care"); JAXB cargo worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/Decal.java

bidirectional

batch file (JAXB cargo documents) plus SOAP CPP integration

JAXB-generated cargo: CapsEaSnd/Rcv record families (100/120/200/300/400/500/600/700/800 record types), CapsFcRcv record family, CCUBSMatchTANF / CCUBSCCPayTANF send/receive docs; SOAP CPPServiceIntegration.wsdl with CPP_ClientSearch, CPP_VendorSearch, CPP_TANF_WorkHours XSDs

not discernible from this surface

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/ — CapsEaSndDocument.java, CapsEaRcvDocument.java, CapsEaSnd500Info.java/600/700, CapsEaRcv120Info.java/200/300, CapsFcRcvDocument.java, CapsFcRcv100Info.java..800, CCUBSMatchTANFSendInfoDocument.java, CCUBSCCPayTANFInfoDocument.java, ChildCareReferralReq.java/Res.java, ChildCareCopaymentReq.java/Res.java; SOAP worker-portal/IEWebApp/WebContent/wsdl/CPPServiceIntegration/CPPServiceIntegration.wsdl + CPP_ClientSearch_Request.xsd / CPP_VendorSearch_Request.xsd / CPP_TANF_WorkHoursDetails.xsd / getTanfHours_Request.xsd; customer-portal copy at customer-portal/bridgesClient/META-INF/CPPServiceIntegration/

inbound

batch file

BeanIO csv decal-rcv-dly-mapping.xml (stream InDecalRcvRecordStream, class …​in.batch.decal.util.InDecalRcvRecord)

daily (IN-RCDCE-DLY)

worker-portal/BATCH/IN/src/resource-mapping/decal-rcv-dly-mapping.xml; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCDCE-DLY.xml

bidirectional

SOAP, direct worker-portal service CPPServiceIntegrationService at /cpsecure/CPPServiceIntegration

WSDL + 8 XSDs. portType CPPServiceIntegration, 4 operations. searchForAClient: clientSearchRequest{clientId, providerId, caseNum, firstName, lastName, providerTimesheetMonth} → clientSearchResponse{caseNum, clientId, providerId, clientFirstName, clientLastName, activityDetails→activityList→activityType[0..500]{activityAssignmentSeqNum, activityName, startDate, endDate, scheduledHours}}. submitTanfWorkHours: tanfWorkHoursDetails{clientId, activityCode, activityAssignSeqNum, enrollmentMonth, clientMetExactSchHrsSw, completedHours, excusedHours, fedHolidayHours, activityVerifCd, goodCausePartialHrsCd, goodCauseVerifCd, outcomeCd, createUserId, createDt, actVerifSubmitDt, scheduledActivityHours, activityTypeCd, goodCauseEmpVerfDate, activityLocName, courseofStudy, weekOneHrs..weekFourHrs} → submitTanfWorkHoursResponse:string. getTanfWorkHours: getTanfWorkHoursRequest{indvId, activityCd, enrollmentMonth} → getTanfWorkHoursResponse (same field set). searchForAVendor: vendorSearchRequest{vendorSeqNum, vendorType} → vendorSearchResponse{vendorsList→vendor[0..500]{vendorSeqNum, vendorCode, vendorType, vendorName, vendorAddr, vendorAddrAptNum, vendorCity, vendorState, vendorZip, vendorPhone}}

real-time; work-hours submission is monthly-scoped (enrollmentMonth, weekOne..weekFour, providerTimesheetMonth)

WSDLs: customer-portal/bridgesClient/META-INF/CPPServiceIntegration/CPPServiceIntegration.wsdl:4 (definitions), :57-79 (portType, 4 operations), :126-128 (service + soap:address); duplicate at bridgesClient/META-INF/wsdl/CPPServiceIntegration.wsdl:54-125. Schemas: bridgesClient/META-INF/CPPServiceIntegration/CPP_ClientSearch_Request.xsd:6-14, CPP_ClientSearch_Response.xsd:6-31, CPP_TANF_WorkHoursDetails.xsd:3-29, CPP_TANF_WorkHours_Response.xsd:6, CPP_VendorSearch_Request.xsd:5-9, CPP_VendorSearch_Response.xsd:6-33, getTanfHours_Request.xsd:3-8, getTanfHours_Response.xsd:6-55. CONSUMER IN MY SURFACE: accessEJB/ejbModule/gov/state/nextgen/access/business/services/CPPServiceRequestEJBBean.java:106 (import CPPServiceIntegrationServiceBO), :2186-2191 (searchForAVendor), :4496-4507 (searchForAClient), :5182-5187 (getTanfWorkHoursFromWPService), :5335, :4364, :4842, :4909. Also accessEJB CPPBenefitQueryEJBBean.java, CPPApplicationsEJBBean.java, CPPAgencyDashBoardRequestEJBBean.java; securityEJB CPPSecurityHelperEJBBean.java + CPPJSPServletFilter.java:28. BO: commonApp/gov/state/nextgen/business/ejb/services/st/cpp/CPPServiceIntegrationServiceBO.java:57. Endpoint: framework/properties/config/production_env.properties:157

bidirectional

SOAP

WSDL + XSD

real-time, synchronous

worker-portal/IEWebApp/WebContent/wsdl/CPPServiceIntegration/CPPServiceIntegration.wsdl — service CPPServiceIntegrationService, ops getTanfWorkHours, submitTanfWorkHours, searchForAClient, searchForAVendor, document/literal, MEP input+output

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

daily (certificate out, provider file in), weekly (payment file in)

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 → IES_MAXSTAR_OUTBOUND_DAILY_CERTIFICATE_FILE (InSndMAXDlyDat, [secret-bearing path withheld]), MAXSTAR_IES_INBOUND_DAILY_PROVIDER_FILE (InRcvMAXProviderDly), MAXSTAR_IES_INBOUND_WEEKLY_PAYMENT_FILE (InRcvMAXPaymentWlyDat)

inbound

batch file

CSV; decal-rcv-dly-mapping.xml

daily, plus DZOT variants

jobs …​/batch-jobs/{IN-RCDCE-DLY,IN-RCDEE-DLY,IN-RCDEE-DZOT,IN-RCDER-DLY}.xml; worker-portal/BATCH/IN/src/resource-mapping/decal-rcv-dly-mapping.xml format="csv"

outbound

batch (DB-driven; no file mapping referenced)

not determined (no BeanIO mapping in the job XMLs)

weekly (enrollment, disenrollment, disenrollment warning, provider e-mail trigger); daily for informal-provider rates

jobs …​/batch-jobs/{IN-CCENR-WLY,IN-CCDISENR-WLY,IN-CCDISENRWRN-WLY,IN-CCPRVDREMLTRGR-WLY}.xml (package gov.state.nextgen.in.batch.spop) and IN-CCINFRT-DLY.xml (package …in.batch.informal)

inbound

batch file (BeanIO fixedlength) with a truncate-and-load batchlet

26B fixed, 2 fields: vendorLicense, effDt

daily (IN-RCKLAQR-DLY; the koala reader is also wired into IN-RCMAX-DLY)

worker-portal/BATCH/IN/src/resource-mapping/koala-rcv-dly-mapping.xml (stream KoalaRcvRecordStream, record KoalaRcvRecord, reclen 26); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCKLAQR-DLY.xml:50-51,73 (mapping + NGBatchFileArchiveBatchlet); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/koala/bo/impl/KoalDlyRcvBOImpl.java:13-14,26-29 (VmCcproviderEligCargo/Collection); …​/koala/batchlet/KoalaTruncAndLoadBatchlet.java

inbound

batch file (BeanIO csv)

delimited, 4 fields: caseId, sogId, startDt, endDt

daily (IN-RCDCE-DLY)

worker-portal/BATCH/IN/src/resource-mapping/decal-rcv-dly-mapping.xml (stream InDecalRcvRecordStream, format=csv, record InDecalRcvRecord, 4 fields); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/decal/util/InDecalRcvConstants.java, InDecalRcvRecord.java

bidirectional

batch file (BeanIO stream, dropped/picked up on a shared filesystem; path supplied at runtime as jobParameters['filePath'])

pipe-delimited CSV outbound (162 fields); pipe-delimited inbound for provider/payment/calendar; fixed-width inbound for exceptions

outbound daily (IN-SNMAX-DLY); inbound provider daily (IN-RCMAX-DLY), payment weekly (IN-RCMAX-WLY), calendar daily (IN-RCMXC-DLY / IN-STGMXC-DLY), enrollment monthly (IN-RCMAXENR-MLY), exceptions daily (IN-RCMAXEXC-DLY)

worker-portal/BATCH/IN/src/resource-mapping/maxstar-snd-dly-mapping.xml:6-14 (stream MaxstarSndRecords, format=csv, delimiter '|'); worker-portal/BATCH/IN/src/resource-mapping/inrcmax-rcv-dly-mapping.xml:6 (MaxStarRcvProviderRecords, delimited '|'), :70 (MaxStarRcvProviderRecordTrailer), :78 (MaxStarRcvProviderWlyRecords/MaxStarRcvPaymentRecord), :102 (MaxStarCalendarRecords); worker-portal/BATCH/IN/src/resource-mapping/inrcmaxenr-rcv-mly-mapping.xml:6; worker-portal/BATCH/IN/src/resource-mapping/inrcmaxexc-rcv-dly-mapping.xml:6 (fixedlength); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNMAX-DLY.xml:110-132 (streamName MaxstarSndRecords, rename to extension '.csv'); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/maxstar/

outbound

SOAP with WS-Security UsernameToken (credentials read from JVM system properties, optionally encrypted)

WSDL+XSD; ns http://cpp.st.services.ejb.business.nextgen.state.gov, service CPPServiceIntegrationService. Ops: searchForAClient(ClientSearchRequest→ClientSearchResponse), searchForAVendor(VendSearchReq→VendorLocationDetails), submitTanfWorkHours(TanfWorkHoursDetails→String), getTanfWorkHours(TanfWorkHoursRequest→GetTanfWorkHoursResponse)

searches real-time; TANF work hours are monthly (criteria keyed on ENROLLMENT_MONTH = previous month)

customer-portal/commonApp/gov/state/nextgen/business/ejb/services/st/cpp/CPPServiceIntegrationServiceBO.java:116 searchForAClient, :235 submitTanfWorkHours, :248 getTanfWorkHours, :331 searchForAVendor, :344-381 getPort() (wsdlUrl, FwConstants.WP_WS_AUTH_USERID/PASSWORD/ENABLED/ENCRYPT_PWD_ENABLED from System.getProperty, setEnvelope WS-Security), :385-403 persistTanfWorkHours + activityAssigSeqNumExists using ENROLLMENT_MONTH = previous month

Mock-relevant facts
  • Four operations. (a) clientSearchRequest{clientId, providerId, caseNum, firstName, lastName, providerTimesheetMonth} → clientSearchResponse{caseNum, clientId, providerId, clientFirstName/LastName, activityDetails[activityType, activityAssignmentSeqNum, activityName, startDate, endDate, scheduledHours]}. (b) tanfWorkHoursDetails (submit, ~44 fields) / getTanfWorkHoursResponse (read, same shape): clientId, activityCode, activityAssignSeqNum, enrollmentMonth, clientMetExactSchHrsSw, completedHours, excusedHours, fedHolidayHours, scheduledActivityHours, weekOneHrs..weekFiveHrs, totalHrs, activityVerifCd, goodCausePartialHrsCd, goodCauseVerifCd, goodCauseEmpVerfDate, outcomeCd, activityTypeCd, activityLocName, courseofStudy, placementTermintnRsn, terminatedDt, clientLetGoFromJob, terminateComments, partHrsSubmitStatusCode, timesheetRecievedDt, createUserId, createDt, actVerifSubmitDt, comments. A 12-flag employer-evaluation block: attitudeSw, judgementSw, acceptSupervisionSw, perfDutiesSw, cooprationSw, courtesySw, personalGroomSw, worksWellOtherSw, punctualitySw, dependabilitySw, willToWorkSw, overallPerfSw. (c) getTanfWorkHoursRequest{indvId, activityCd, enrollmentMonth}. (d) vendorSearchRequest{vendorSeqNum, vendorType} → vendor{vendorSeqNum, vendorCode, vendorType, vendorName, vendorAddr, vendorAddrAptNum, vendorCity/State/Zip, vendorPhone}. Code tables: activityCode/activityTypeCd, activityVerifCd, goodCausePartialHrsCd, goodCauseVerifCd, outcomeCd, placementTermintnRsn, partHrsSubmitStatusCode, vendorType/vendorCode.

  • CapsEaHeader (9): ticapGlobCapsId, ticapCapsId, ticapChimesCaseNum, ticapChimesApNum, ticapChimesPersNum, ticapSrchsParticId, ticapTranCd, ticapTranDtTimeStmp, ticapFldChgInd — a 6-way cross-system id correlation block (CAPS global id, CAPS id, CHIMES case/AP/person, SEARCHS participant). Inbound TC120 = EA determination (tc120ApplDt, tc120AvoidAbusSw, tc120LiqdRsrcAvlSw, tc120RsdcQualSw, tc120EmplRfsSw, tc120AgeQualSw, tc120EmrgAsstEligDt, tc120EmrgAsstAprvCd, tc120AprvWkrId, tc120EmrgAsstAprvDt, tc120StrDt/EndDt, tc120CapsWkr* block). TC200 = full person demographics incl. 5 race slots, ethnicity, tribal (tc200TrblEnrlNum, tc200TrblAfflCd, tc200LivOnRsrvSw), physical description (tc200FtHtCnt, tc200InchHtCnt, tc200WtLbsCnt, tc200EyeClrCd, tc200HairClrCd), verification switches (tc200CitspSw, tc200BrthCertVrfSw, tc200SsnVrfSw, tc200ParMarTimeBrthSw), maiden + alias names. TC300 = address (tc300AddrTypCd, tc300ActvDt, tc300AddrEndDt, addr1/2, city, state, zip5, zip4, phone, county). Outbound TE500 = person identity w/ verification type codes (te500SsnVrfTypCd, te500BrthVrfTypCd, te500TrblCd, te500IndlEnrlNo); TE600 = program participation (te600ApplRcvDt, te600PgmCd, te600PgmSubTypCd, te600CntyWkrTypCd, te600CntyWkrJurNo, te600PtcpCd/StrDt/EndDt, te600RltCd, te600DnyClsrRsnCd, te600RevrToOpnInd, te600RcrtRvwDueNm); TE700 = address with start/end dates.

  • Match send (11): ccubsid + chimespersonid/lastname/firstname/middleinitial/dob/ssn/gendercode + filler + matchcode + tanfstatus. Match receive (7): ccubsid, ccubslastname/firstname/middleinitial, ccubsdob, ccubsssn, ccubsgendercode. Child-care payment receive (5): childNumber, benefitMonth, issueDt, issueAmt, iuSubtype. Copayment: req{personId, ssn, ccubsId, name parts, dateOfBirth, genderCode, requestDate} → res → childCareCopaymentList{successCode, chimesPersonId, ccubsId, ssn, name, dob, genderCode, childCareCopaymentInformation[amountOfCopayment, copaymentMonth, providerName, providerType]}. Referral req (18): headOfHouseHoldId, referralId, headOfHouseholdSSN, mode, HoH name parts, workCaseManagerName, childCareStartDate, county, workCaseManagerPhoneNumber, workOfficeAddress, referralChangeRequestDate, caseNumber, comment, childCareProvider, childInformationList → ChildInformation (17): childPersonId, child name parts, childEducationLevelCode, relationshipCode, doesChildRequireChildCare, variedScheduleRequestedPerWeek, numberOfHoursPerWeek + per-day hour fields sundayHours..saturdayHours. Referral res: single result. Code tables: matchcode, tanfstatus, iuSubtype, providerType, mode, childEducationLevelCode, relationshipCode.

  • CapsFcHeader (5): capsClientId, chimesClientId, transDt, capsTransCd, transTimeStmp. TC100 = client identity + verification codes (tc100ClientSsn/SsnVrfCd, tc100ClientDobDt/DobVrfCd, tc100ClientIdVrfCd, tc100ClientCitizenCd/CitizenVrfCd, tc100ClientNameType, name parts, suffix, gender). TC200 = address. TC300 = IV-E status (tc300IveStatusCd, tc300IveEligStartDt, tc300IveEligEndDt, tc300IveEligActiveFlag) — the load-bearing record for foster-care Medicaid. TC400 = assigned worker + worker address. TC600 = worker-name change (old/new name parts). TC700 = review + service (tc700ReviewCd, tc700ReviewDt, tc700ServiceCd, tc700ServiceBeginDt/EndDt). TC800 = SSI eligibility (tc800SsiEligCd, tc800SsiEligBeginDt/EndDt).

  • 701 DECAL hits (392 in BATCH). DECAL is both an interface partner AND a worker-role/organization inside Gateway (reviewer roles, task routing) — the marker conflates the two; separate them when attributing surfaces. The CAPS marker itself (226 hits) is mostly CAPS-as-program-code plus a plotly.js false positive, not a distinct interface.

  • Read/write pair on the same data (getTanfWorkHours / submitTanfWorkHours) — a mock must be stateful enough that a submit is visible to a subsequent get, which is not true of the read-only lookup services elsewhere in the estate. searchForAVendor implies provider-side identity resolution against CAPS providers.

  • Send-side record class MaxstarSndRecord carries case/child/cert ids, HoH name+address, copay, income components, AU size. Receive families: Provider, Payment, Calendar, Enrollment, Exception (each its own BO under maxstar/bo). Concrete on-disk file names are NOT in source — filePath is a runtime job parameter.

  • The numbered record-type families (Ea 120/200/300/500/600/700, Fc 100-800) are a clean spec for a record-type-dispatching mock. worker-portal/interfaceSchema is the single best module for interface data shapes overall — it is the JAXB cargo schema project for the whole interface layer.

  • The CPP tenant runs inside the same customer-portal EAR behind a dedicated servlet filter (securityEJB/CPPJSPServletFilter.java) — a second front-end persona, not a separate deployable. Directly relevant to canopy’s caps service.

  • Credentials come from JVM system properties — file path recorded only, no values read. Related agency-registration code: commonApp/com/deloitte/cpp/business/rules/RegisterAgencyBO.java.

  • Full-replace semantics (truncate + load) — the mock must model a complete snapshot, not deltas. Smallest layout on this surface; trivial fixture.

  • DZOT is an undecoded cadence/variant suffix (appears only on IN-RCDEE, IN-RCPCS, IN-RCPRD).

  • 'sogId' (scholarship/other-grant id) semantics not resolved from this surface.

  • 'spop' acronym not decoded — no javadoc match found in the package.

  • Relevant to canopy’s CAPS program service.

EBT — FIS / Conduent / Xerox (EBTAS)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1 document/literal, tiny request (caseNumber, indvId) → result

real-time

worker-portal/IEWebApp/WebContent/WEB-INF/wsdl/CouponBook.wsdl:53 (service CouponBook), :33 (portType CouponBook), :34 (operation UpdateCoponBook); duplicate copy at worker-portal/IEWebApp/WebContent/wsdl/SelfServiceIntegration/CouponBook.wsdl:53. Server impl registered in worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml (endpoint name="CouponBook", url-pattern=/CouponBook); impl class CouponBookSOAPImpl

bidirectional (outbound BiBOPQ, inbound BiCardHolderQ)

JMS queues (framework MQ); inbound queue is consumed by the batch broker

Outbound: FwXMLMessage XML from BiCardholderInfoMessageVO. Inbound: messages parsed by formatter class gov.state.nextgen.business.batch.bi.BiBOPFormatter, then handed to a KSH job

DAILY — inbound receiver launches process FW-BOPIM-DLY.ksh synchronously per message

Outbound queue: worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:34 (gov.state.nextgen.common.cargo.custom.BiCardholderInfoMessageVO="BiBOPQ"); VO present at worker-portal/DA/src/gov/state/nextgen/common/cargo/custom/BiCardholderInfoMessageVO.java:16. Inbound receiver: worker-portal/IEWebApp/WebContent/XML/config/broker.xml:4-11 (<receiverqueues><BiCardHolderQ process_type="job" process_name="FW-BOPIM-DLY.ksh" process_execution="synchronous" format_name="gov.state.nextgen.business.batch.bi.BiBOPFormatter"/>). Broker config reader: worker-portal/FW/batch/src/gov/state/nextgen/framework/batch/util/FwBrokerConfiguration.java:60-80; connector worker-portal/FW/batch/src/gov/state/nextgen/framework/batch/util/FwBrokerMessageConnector.java:31-44.

bidirectional

batch file via webMethods ActiveTransfer MFT

fixed-width with header/detail/trailer — EBTASRcvRecord{,Header,Trailer}, EBTASDDRcvRecord{,Header,Trailer}, XEROXRcvRecord{,Header,Trailer}, and a shared EBTASXeroxCommonRecordTrailer

daily inbound: address, B-code, expunge, inactive accounts, drawdown request; daily outbound request; monthly outbound SNAP and TANF issuance requests

MFT events EBTAS_IES_INBOUND_DAILY_ADDRESS_FILE, …​_BCODE_FILE, …​_EXPUNGE_FILE, …​_INACTIVE_ACCOUNTS_FILE, …​_EBTASDRAWDOWNREQUEST_FILE, IES_EBTAS_OUTBOUND_DAILY_DLY_REQUEST, IES_EBTAS_OUTBOUND_MONTHLY_SNAPMO_REQUEST, IES_EBTAS_OUTBOUND_MONTHLY_TANFMO_REQUEST in worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v2 and ActiveTransfer_Sprint3_v1, plus XEROX_SMARTCARDS_INBOUND_FILE in [withheld]; vendor binding at worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ebtas/util/EBTASXeroxCommonRecordTrailer.java and …​/ebtas/chunk/batchlet/EBTASXeroxSuccSndMergeBatchlet.java; xerox package …​/in/batch/xerox/ (22 files: XEROXRcvRecord.java, XEROXRcvRecordHeader.java, XEROXRcvRecordTrailer.java); BI-module issuance jobs BI-EBTEXP-DLY.xml, BI-EBTINACT-DLY.xml, BI-EBTASMRG-MLY.xml, BI-PEBT-DLY.xml in worker-portal/BATCH/BI/src/META-INF/batch-jobs/

bidirectional

batch file

BeanIO fixed-length: xerox-rcv-dly-mapping.xml (3/34/310), xerox-split-rcv-dly-mapping.xml (3/34/270), ebtas-rcv-dly-mapping.xml (3/34/310), ebtasdd-rcv-dly-mapping.xml (3/30/144), ebtas-merge-snd-changes-mapping.xml (6/102/505); BI-side DailyEbtasBcodeRecord.xml (3/28/80), DailyEbtasInactiveRecord.xml (1/10/80), ExpungementDailyRecord.xml (9/84/241), EbtasMergeRecord.xml (3/52/505); DSNAP EBT inbound via SQL*Loader into DSNAP_EBT_INBOUND

daily (IN-RCEBT-DLY, IN-RCEBTDD-DLY, IN-RCEBTSPL-DLY, IN-RCXRX-DLY, IN-RCXRXSPL-DLY, IN-SNEBTXERMRG-DLY, BI-EBTEXP-DLY, BI-EBTINACT-DLY, BI-EBTNGG0084-DLY); monthly (BI-BCODE-MLY, BI-EBTASMRG-MLY)

worker-portal/BATCH/IN/src/resource-mapping/xerox-rcv-dly-mapping.xml, xerox-split-rcv-dly-mapping.xml, ebtas-rcv-dly-mapping.xml, ebtasdd-rcv-dly-mapping.xml, ebtas-merge-snd-changes-mapping.xml; worker-portal/BATCH/BI/src/resource-mapping/ (11 files); worker-portal/BATCH/IN/sql-loader-control/dsnapcontrolfile.ctl; worker-portal/IEApp_Properties/local_batch/batch/batch-framework.properties:29 (email.ebtas.receipient)

outbound

SOAP, direct service CouponBook at /cpsecure/CouponBook?wsdl

WSDL + inline XSD. portType CouponBook, operation UpdateCoponBook [sic]. Request {caseNumber, indvId} → UpdateCoponBookResponse{result:string}

real-time

WSDL: customer-portal/bridgesClient/META-INF/CouponBook/CouponBook.wsdl:6 (targetNamespace), :10-21 (schema), :33-42 (portType/operation), :53-55 (service + soap:address). JAXB/client: bridgesClient/gov/state/nextgen/business/ejb/services/st/couponbook/ (CouponBook.java:31-35 @WebMethod/@RequestWrapper/@ResponseWrapper/@Action, CouponBookService.java, UpdateCoponBook.java, UpdateCoponBookResponse.java). Endpoint: framework/properties/config/production_env.properties:187 (COUPON_BOOK_SERVICE); consumer commonApp/gov/state/nextgen/access/business/rules/BenefitSummaryBO.java

bidirectional

batch file over SFTP via MFT

flat data file (fixed-width)

daily (address, benefit code, inactive accounts, expunge, drawdown request, daily request) + monthly (SNAP MO, TANF MO)

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:502 (EBTAS_IES_INBOUND_DAILY_BCODE_FILE), :2133 (…ADDRESS_FILE), :2762 (IES_EBTAS_OUTBOUND_MONTHLY_TANFMO_REQUEST), :3043 (…INACTIVE_ACCOUNTS_FILE), :5061 (IES_EBTAS_OUTBOUND_DAILY_DLY_REQUEST), :5189 (IES_EBTAS_OUTBOUND_MONTHLY_SNAPMO_REQUEST), :6321 (EBTAS_IES_INBOUND_DAILY_EXPUNGE_FILE), :2887 (TEST_IES_EBTAS_OUTBOUND); Active_Events_23SEP2015_CR01:277 (EBTAS_IES_INBOUND_DAILY_EBTASDRAWDOWNREQUEST_FILE); '[secret-bearing path withheld]':1, :4656, :8144

inbound

batch file over SFTP via MFT

flat data file

unspecified in the action name; MFT poll driven

[secret-bearing path withheld]:1740 (XEROX_SMARTCARDS_INBOUND_FILE, filter Xerox, exclude filter xerox)

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file; layouts not in this subsurface

daily (address, benefit code, expunge, inactive accounts, drawdown request inbound; DLY request outbound), monthly (SNAP and TANF benefit request files outbound)

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 → EBTAS_IES_INBOUND_DAILY_{ADDRESS,BCODE,EXPUNGE,INACTIVE_ACCOUNTS}_FILE (tokens InRcvDlyEbtAddrDat, BrRcvDlyEbtBcode, BrRcvDlyEbtExp, BrRcvDlyEbtlnact (sic, 'lnact' with lowercase L for I)), IES_EBTAS_OUTBOUND_DAILY_DLY_REQUEST (InSndEbtasDLYRequestDat), IES_EBTAS_OUTBOUND_MONTHLY_SNAPMO_REQUEST (InSndEbtasSNAPMORequestDat), IES_EBTAS_OUTBOUND_MONTHLY_TANFMO_REQUEST (InSndEbtasTANFMORequestDat); EBTAS_IES_INBOUND_DAILY_EBTASDRAWDOWNREQUEST_FILE in Active_Events_23SEP2015_CR01

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file; TPL/Xerox inbound, DSO outbound; Xerox job also matches *.xml

monthly (TPL carrier extract), unspecified (Xerox smartcards), weekly (DSO claims)

worker-portal/IN/webMethods/Active_Events_23SEP2015_CR01 → TPL_IES_INBOUND_MONTHLY_TPL_CARRIER_EXTRACT_FILE; [secret-bearing path withheld] → XEROX_SMARTCARDS_INBOUND_FILE (filters Xerox and .xml); worker-portal/IN/webMethods/[secret-bearing path withheld] → IES_DSO_OUTBOUND_WEEKLY_CLAIMS_FILE (*BrSndWlyDsoCl:3324)

bidirectional

batch file (split + merge companion jobs); ONR file-copy batchlets

fixed-width; ebtas-rcv-dly-mapping.xml, ebtasdd-rcv-dly-mapping.xml, xerox-rcv-dly-mapping.xml, xerox-split-rcv-dly-mapping.xml, ebtas-merge-snd-changes-mapping.xml

daily; ONR (on-request) for the copy jobs

jobs …​/batch-jobs/{IN-RCEBT-DLY,IN-RCEBTDD-DLY,IN-RCEBTSPL-DLY,IN-RCXRX-DLY,IN-RCXRXSPL-DLY,IN-SNEBTXERMRG-DLY,IN-EBCPY-ONR,IN-GACPY-ONR}.xml; IN-EBCPY-ONR.xml / IN-GACPY-ONR.xml use gov.state.nextgen.framework.batch.util.batchlet.GammisEbtasMoveBatchlet (pure file move, no parsing); DD variant = direct deposit

inbound

batch file + SQL*Loader stage

delimited/positional per dsnapcontrolfile.ctl (19 lines)

daily when activated

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCDSNAP-DLY.xml (FileExistenceCheckPatternMatch → FileSQLLoadBatchlet → NGBatchFileArchiveBatchlet); worker-portal/BATCH/IN/sql-loader-control/dsnapcontrolfile.ctl → INTO TABLE IE_APP_ONLINE.DSNAP_EBT_INBOUND

bidirectional

batch file (BeanIO fixedlength, header/detail/trailer), plus a daily merge job on the outbound side

inbound cardholder/demographic feed 310B: header 8 fields (recordType, transactionType, date, time, controlNumber, stateID, inHdReserved), detail 19 fields (countyCd, cardHolderId, protectedPayeeInd, inPrimAltInd, name parts, transactionLogDt/Time, groupId, userId, 3 address lines, city, state, zip), trailer 7 fields with totalDetailRecords. Inbound direct-deposit/check feed 144B: header/detail/trailer, detail 20 fields (printCycleDate, countyCd, barTranCd, projectNo, medicaidCd, caseId, payeeName, numberofAdult/child, subSysChkNo, chkAmount, iesIssuanceNo, benefitMMYY, reissueIssuanceNo, reissueChkDate, barsTransCode, ebtIndicator, benefitType). Outbound merge streams 504B (Success) and 505B (IES), 40 detail fields each incl. ssn, dob, race, sex, countyNumber, localOfficeNumber, issuanceCode, languageCode, protected-payee names

daily (IN-RCEBT-DLY, IN-RCEBTSPL-DLY, IN-RCEBTDD-DLY in; IN-SNEBTXERMRG-DLY out)

worker-portal/BATCH/IN/src/resource-mapping/ebtas-rcv-dly-mapping.xml; ebtasdd-rcv-dly-mapping.xml; ebtas-merge-snd-changes-mapping.xml (streams EbtasSucessRecordStream 504B + EbtasIESRecordStream 505B); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ebtas/chunk/batchlet/EbtasRcvBatchlet.java:47, EbtasDDRcvBatchlet.java:52, EBTASXeroxSuccSndMergeBatchlet.java; …​/ebtas/util/EBTASXeroxCommonRecordTrailer.java

inbound

batch file

fixed-width 310 bytes with record-type tags: 'HD' header (transactionType 8, date 8, time 8, controlNumber 6, stateID 2, reserved 25, filler 251), 'DT' detail (countyCd 5, cardHolderId 9, protectedPayeeInd, inPrimAltInd, last 30, first 30, MI 1, transactionLogDt 8, transactionLogTime 8, groupId 8, userId 10, addr1/2 50 each, addr3 40, city 25, state 2, zip 9, filler 15), 'TR' trailer

daily (IN-RCXRX-DLY; split variant IN-RCXRXSPL-DLY; EBT split IN-RCEBTSPL-DLY)

worker-portal/BATCH/IN/src/resource-mapping/xerox-rcv-dly-mapping.xml:6-8 (XEROXRcvRecords), :10-17 (HD header), :22-43 (DT detail), :45 (TR trailer); worker-portal/BATCH/IN/src/resource-mapping/xerox-split-rcv-dly-mapping.xml:6,9,23,48; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/xerox/ (XeroxRcvBO + XeroxRcvSPLBO, XeroxRcvBatchlet)

bidirectional

batch file; outbound issuance + inbound acknowledgment/status; file move handled by a shared batchlet

fixed-width BeanIO, Header(H)/Detail(D)/Trailer(T) with a recordStatus discriminator at the final byte; 624-byte records on the FS/TANF daily benefit stream

daily (FS/TANF benefits, expungement, inactive, B-code); monthly (food stamp, TANF, EBTAS merge); weekly (P-SNAP / P-SNAP mass-ms)

worker-portal/BATCH/BI/src/resource-mapping/FsTanfDaillyRecord.xml:5 (FsTanfDailyBenefitH, fixedlength), :8 (recordType literal "H" rid), :13 (recordStatus pos 623 len 1 literal "1"), :17 (FsTanfDailyBenefitD), :21 (literal "D"), :71 (recordStatus literal "2"), :75-86 (Trailer, literal "T", recordStatus literal "3") — 624-byte fixed record. Layout family (BI/src/resource-mapping/): DailyEbtasBcodeRecord.xml, DailyEbtasInactiveRecord.xml, SuccessDailyEbtasInactiveRecord.xml, EbtasMergeRecord.xml:6-62, ebtas-merge-snd-changes-mapping.xml, ExpungementDailyRecord.xml, FoodStampMonthlyRecord.xml, FsTanfDaillyRecordVal.xml, FsTanfPSNAPDaillyRecord.xml, TanfMonthlyRecord.xml. Jobs (BI/src/META-INF/batch-jobs/): BI-FSTANF-DLY.xml:52-63 (reader/processor/writer DlyFsTanfToEbtas*), BI-EBTINACT-DLY.xml:39-47 + :72-80, BI-EBTASMRG-MLY.xml:73-82, BI-EBTEXP-DLY.xml, BI-EBTEXPSPT-DLY.xml, BI-PEBT-DLY.xml, BI-PEBTPRE-DLY.xml, BI-PEBTPST-DLY.xml, BI-PSNAP-WLY.xml, BI-PSNAPMM-WLY.xml:52-63, BI-FS-MLY.xml, BI-TANF-MLY.xml, BI-SNAPTANFMRG-DLY.xml, BI-EBTSUCCMRG-ONR.xml.

inbound/outbound file drop

batch file (directory move; SFTP on the external leg)

opaque file set moved wholesale; layout not in this subtree

batch step, paired with GAMMIS; dedicated failure email recipient

customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/GammisEbtasMoveBatchlet.java:35-39 (ebtasFromPath, ebtasToPath), :55; recipient config key customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/enums/NGBatchConfiguration.java:39 ("email.ebtas.receipient")

Mock-relevant facts
  • 17 actions — the largest single-partner action count after SSA. Money-moving interface: IES_EBTAS_OUTBOUND_DAILY_DLY_REQUEST and the monthly SNAP/TANF requests are issuance instructions; EXPUNGE and INACTIVE_ACCOUNTS come back inbound. THERE IS NO ISSUANCE ACKNOWLEDGEMENT FILE — IES sends an issuance request and never gets a per-request confirmation, only downstream state files. A mock must therefore model 'issuance sent, outcome unknown until the next daily file'. Note the stray TEST_IES_EBTAS_OUTBOUND action left in the production Sprint3 export.

  • CASE-SENSITIVITY DEFECT WORTH REPRODUCING IN A MOCK’S TEST: the find filter is Xerox but the exclude filter is xerox — the exclude will not match what the find matched, so the exclusion step is a no-op and the same file can be re-picked. This is exactly the class of bug canopy’s mocks should be able to demonstrate. Also the only action name lacking the IES/IES_ direction infix, so name-based direction parsing fails here.

  • SuccessDailyEbtasInactiveRecord.xml + BI-EBTSUCCMRG-ONR + BI-SNAPTANFMRG-DLY confirm the same IES/SUCCESS dual-source merge pattern on the EBT feed. A *Val layout (FsTanfDaillyRecordVal.xml) pairs with each send layout — validation-only passes (BI-FSVAL-DLY, BI-FSTANFVAL-DLY, BI-TANFVAL-MLY) run the same file through a stricter mapping before transmission; a faithful mock should support both.

  • EBT marker 461 hits, XEROX 548 hits (548 of them in BATCH). Vendor is XEROX — assigned markers Conduent and FIS return ZERO genuine hits (see the false-positive finding), i.e. this source predates the Xerox→Conduent rebrand. P-EBT jobs (BI-PEBT-DLY/PRE/PST) are present, so pandemic-EBT issuance is in scope.

  • broker.xml is the ONLY populated receive-queue configuration anywhere in worker-portal — every other listener config is empty. The whole FwBroker* package is marked @Deprecated (FwBrokerConfiguration.java:16, FwBrokerConstants.java:11). Neither BiBOPFormatter nor the KSH script is in this tree.

  • Gateway-as-server. targetNamespace http://st.services.ejb.business.nextgen.state.gov/CouponBook/. Operation name is misspelled in the contract ('UpdateCoponBook', 'UpdateCoponBookResponse') — a mock must reproduce the typo verbatim. Two byte-identical copies of the WSDL exist in the tree.

  • The 1-byte difference between the Success (504) and IES (505) streams is a real off-by-one trap for mock generators — keep them as separate layouts. Related Xerox jobs outside this package: IN-RCXRX-DLY / IN-RCXRXSPL-DLY (xerox package).

  • 'xerox' and 'ebtas' mappings are near-identical (same 3/34 shape, 310 vs 270/310 widths) — likely vendor-transition duplicates; a mock should support both widths.

  • The 'SPL' (split) variant is the same layout re-read into a split-records VO — a mock only needs one physical layout.

  • A TEST_IES_EBTAS_OUTBOUND action is present in ActiveTransfer_Sprint3_v1 — a leftover test job, not a real interface.

  • Operation name is misspelled in the contract (UpdateCoponBook) — a canopy mock must reproduce the typo exactly.

  • XEROX_SMARTCARDS_INBOUND_FILE is the only MFT job in this subsurface whose payload is XML rather than flat file.

  • Benefit-issuance module code is NGBatchModuleType.BI ("Benefit Issuance") — see NGBatchModuleType.java:10.

  • SPL = split job, MRG = merge job — the vendor file arrives/leaves in multiple parts.

SHINES (GA SACWIS child welfare)

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoints published by IEWebApp under /IES/services/*)

WSDL 1.1; legacy mainframe-flavoured vocabulary — DHRClientNumber, EDGNumber, EDGStatus, classOfAssistanceCode, TPLPolicyholderNumber, TPLRecipientRelationship, liquidResources, benefitMonth

real-time per inquiry

worker-portal/IN/ejbModule/META-INF/wsdl/IncomeResourceRequest.wsdl:196 (service IncomeResourceService), :176 (portType SHINES_incomeResourceRequest_PortType), :177 (operation incomeResourceInquire); worker-portal/IN/ejbModule/META-INF/wsdl/MedicaidEligibilityRequest.wsdl:108 (service MedicaidEligibilityService), :88 (portType SHINES_medicaidEligibilityRequest_PortType), :89 (operation medicaidEligibilityInquire). Both registered in sun-jaxws.xml (IncomeResourceService → /IES/services/IncomeResourceService impl SHINESIncomeResourceRequestPortTypeImpl; MedicaidEligibilityService → /IES/services/MedicaidEligibilityService impl SHINESMedicaidEligibilityRequestPortTypeImpl)

inbound

SOAP over HTTP/HTTPS (JAX-WS endpoints published by IEWebApp under /IES/services/*)

WSDL 1.1; rich child-welfare payloads — caregiver block, case-manager/supervisor/county-director contact blocks, child demographics, legalStatus, placement, specialNeeds, typeOfService, docMetaData

real-time referral push

worker-portal/IN/ejbModule/META-INF/wsdl/Shine_CC.WSDL:153 (service CCReferralService), :132 (portType CCReferralServicePortType), :133 (operation matchCCReferral); worker-portal/IN/ejbModule/META-INF/wsdl/ShinesReferralService.wsdl:77 (service ShinesReferralService), :59 (portType ShinesReferralPortType), :60 (operation shinesReferral); worker-portal/IN/ejbModule/META-INF/wsdl/ShinesWicReferralService.wsdl:82 (service ShinesWICReferralService), :64 (portType ShinesWICReferralPortType), :65 (operation shinesWICReferral). All three registered in sun-jaxws.xml (ShinesCCReferralService → /IES/services/ShinesCCReferralService, ShinesReferralService → /IES/services/ShinesReferralService, ShinesWICReferralService → /IES/services/ShinesWICReferralService)

outbound

SOAP over HTTP for the WIC batch (Axis2 stub, direct); SOAP over HTTPS via the GTA webMethods ESB for the child-care referral response (GAIES_SHINES.wsProvider.ChildCareReferralResponse; endpoint host redacted)

WSDL 1.1; IesCaseStatus/IesStatusResponse (applicationNumber, caseNumber, clientId, status, transactionId) for WIC; ChildCareReferralResp for CC

batch for the WIC referral send; per-referral response for CC

worker-portal/IN/ejbModule/META-INF/wsdl/ShinesWicBatch.wsdl:50 (service ShinesWicBatchReferralService), :32 (portType ShinesWicBatchReferralServicePort), :33 (operation shinesWicBatchReferral) — client-side Axis2 artifacts worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/shines/wic/referral/ShinesWicBatchReferralServiceStub.java and ShinesWicBatchReferralServiceCallbackHandler.java, batch driver worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/shines/bo/impl/ShineWicRefSndBOImpl.java; 'worker-portal/IN/Providers WSDL/ShinesCCBatch.wsdl':97 (service GAIES_SHINES.wsProvider.ChildCareReferralResponse.ChildCareReferralResp_WSD), :77 (portType ChildCareReferralResp_WSD_PortType), :78 (operation ChildCareReferralResp)

inbound (SHINES → IES); synchronous request/response

SOAP web service (EJB-backed)

WSDL+XSD; targetNamespace referral.shines.services.business.ejb.nextgen.state.gov

real-time, per referral

worker-portal/IN/ejbModule/META-INF/xsd/ShinesReferral.xsd:2 (targetNamespace), :3-27 (ReferralsRequest), :29-35 (ReferralsResponse), :63-64 (Source fixed pattern "SHI", maxLength 3), :95 (ProgramCd pattern "MA"), :52 (citizanShip pattern "Y|P|T|V"), :102 (ChildGend pattern "M|F|U"), :57 (appDate pattern \d{2}-\d{2}-\d{4}), :107 (SSN pattern [0-9]{9})

inbound (SHINES → IES)

SOAP web service

WSDL+XSD; targetNamespace referral.wic.shines.services.business.ejb.nextgen.state.gov

real-time, per referral

worker-portal/IN/ejbModule/META-INF/xsd/ShinesWICReferral.xsd:2 (targetNamespace), :3-32 (ReferralsRequest), :34-40 (ReferralsResponse); enumerations present: AFB | RMP | LSC

bidirectional

SOAP (ShinesWicReferralService, ShinesWicBatch) + batch file via webMethods MFT

WSDL + dedicated XSDs IESWicSchema.xsd (outbound) and IESResponseWICSchema.xsd (inbound); ShinesWICReferral.xsd

daily inbound nutritional assessment (WIC_IES_INBOUND_DAILY_NUTRITIONAL_ASSESSMENT_FILE); daily WIC renewal jobs CO-RENEWALWIC-DLY, CO-RENEWALWICPBN-DLY, IN-RCWIC-DLY

worker-portal/IN/xsd/IESWicSchema.xsd and worker-portal/IN/xsd/IESResponseWICSchema.xsd; worker-portal/IN/ejbModule/META-INF/wsdl/ShinesWicReferralService.wsdl and ShinesWicBatch.wsdl, schema META-INF/xsd/ShinesWICReferral.xsd; MFT event in worker-portal/IN/webMethods/Active_Events_23SEP2015_CR01; batch package …​/in/batch/wic/ (18 files); job IN-RCWIC-DLY.xml; webMethods package GAIES_WIC10_10052015.zip

bidirectional

SOAP (real-time referral) + batch

WSDL+XSD — ShinesReferralService.wsdl, ShinesWicReferralService.wsdl, ShinesWicBatch.wsdl, Shine_CC.WSDL, ShinesCCBatch.wsdl; schema ShinesReferral.xsd

real-time referrals; daily jobs IN-SNSHIDIS-DLY, IN-SNSHNRFS-DLY

worker-portal/IN/ejbModule/META-INF/wsdl/ShinesReferralService.wsdl, ShinesWicReferralService.wsdl, ShinesWicBatch.wsdl, Shine_CC.WSDL; worker-portal/IN/Providers WSDL/ShinesCCBatch.wsdl; schema worker-portal/IN/ejbModule/META-INF/xsd/ShinesReferral.xsd; batch package …​/in/batch/shines/ (35 files); webMethods GAIES_SHINES11_09062015.zip, GAIES_SHINESv12_02052016.zip

inbound (Gateway EXPOSES SOAP endpoints to SHINES) + outbound referral status

JAX-WS SOAP endpoints hosted by worker-portal; plus a referral-status service call and daily batch

WSDL; /IES/services/{MedicaidEligibilityService, IncomeResourceService, ShinesReferralService, ShinesCCReferralService, ShinesWICReferralService}

real-time; daily IN-SNSHNRFS-DLY, IN-SSCCR-DLY, IN-SNSHIDIS-DLY; weekly IN-SSRNTASK-WLY

worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:62-70, 133-148; worker-portal/IEWebApp/WebContent/WEB-INF/web.xml:412-436, 481-488; worker-portal/IEApp_Properties/Local/Application.properties:442 (SHINES_REF_LOG_SWITCH), :481 (comment 'mock shines CC Referral service uri'), :512 (SHINES_CC_REFERRAL_WS_CAMPAIGN_ID); worker-portal/IEApp_Properties/local_batch/Application.properties:212-213 (SHINES_REF_APP_STATUS_SERVICE_URL)

bidirectional (inbound requests + a separate inbound callback endpoint)

SOAP over HTTPS

WSDL + XSD

real-time request; asynchronous response delivered as a fresh inbound call

worker-portal/IN/Providers WSDL/ShinesCCBatch.wsdl — service GAIES_SHINES.wsProvider.ChildCareReferralResponse.ChildCareReferralResp_WSD, op ChildCareReferralResp, address https://<HOST>/ws/…/ChildCareReferralResp_WSD_Port, document/literal, MEP input+output; plus ShinesReferralService.wsdl (op shinesReferral), ShinesWICReferralService.wsdl (op shinesWICReferral), ShinesWicBatch.wsdl (op shinesWicBatchReferral), Shine_CC.WSDL (op matchCCReferral) — all registered in worker-portal/IN/ejbModule/META-INF/jax-ws-catalog.xml. Canonical header: interfaceCode=SHINES, 'WEBSERVICE CALL FROM SHINES'

bidirectional

SOAP (both wsConsumer and wsProvider in the same package) + daily batch file

WSDL+XSD; doc types ns2:Client/Address/AliasName/AlternateId/Phone/Race/ElectronicAddress/Contact/Benefit/Worker/Error/Message lists

real-time SOAP; daily batch for $TARS and SUCCESS client files

worker-portal/IN/webMethods/GAIES_EMPI_v20_01202016.zip → ns/GAIES_EMPI/wsProvider/{createClientService,updateClientService,searchClientService,detailSearchClientService,matchClientService,mergeClientService,multiClientIDSearchService,programParticipationService,checkForSuccessIndicatorService,updateMergeAlertService} and matching ns/GAIES_EMPI/wsConsumer//connectors/*PortType; batch at worker-portal/IN/webMethods/EMPI_Inbound ($TARS_EMPI_INBOUND_DAILY_File filter STARS_IN_FILE, SUCCESS_EMPI_INBOUND_DAILY_File filter SUCCESS_IN_FILE) and [secret-bearing path withheld],DEMOGRAPHIC,ALIAS,IDALIAS,SSN,IRN_ASSIGNMENT}_FILE)

bidirectional

SOAP

WSDL+XSD

real-time

worker-portal/IN/webMethods/GAIES_SHINESv12_02052016.zip → ns/GAIES_SHINES/wsConsumer/IncomeResourceService_/connectors/SHINES_incomeResourceRequest_PortType_incomeResourceInquire, ns/GAIES_SHINES/wsConsumer/MedicaidEligibilityService_/connectors/SHINES_medicaidEligibilityRequest_PortType_medicaidEligibilityInquire, ns/GAIES_SHINES/services/{incomeResourceInquire,medicaidEligibilityInquire}; inbound provider contract at worker-portal/IN/Providers WSDL/ShinesCCBatch.wsdl:77-99

bidirectional

SOAP; outbound JAX-WS clients for referral / WIC referral / child-care referral / Medicaid eligibility / income-resource, PLUS inbound Axis2 response stubs on GTA ESB :6410 (IES/GAIES_SHINES.wsProvider.ChildCareReferralResponse and .MedicaidReferralRespose.processMAReferralResp), PLUS batch referral variants

WSDL+XSD (dedicated ShinesReferral.xsd, ShinesWICReferral.xsd)

real-time referral + a distinct batch referral service (ShinesWicBatch, ShinesCCBatch)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/shines/referral/ShinesReferralService.java:17; shines/wic/ShinesWICReferralService.java:18; shines/wic/referral/ShinesWicBatchReferralServiceStub.java; shinesccref/CCReferralService.java:18; shines/melig/MedicaidEligibilityService.java:17; shines/incomeRes/IncomeResourceService_Service.java:17; shines/cc/referral/GAIES_SHINESWsProviderChildCareReferralResponseChildCareReferralResp_WSDStub.java; shines/referalStatus/GAIES_SHINESWsProviderMedicaidReferralResposeProcessMAReferralResp_WSDStub.java; ejbModule/META-INF/wsdl/{ShinesReferralService,ShinesWicBatch,ShinesWicReferralService,Shine_CC,MedicaidEligibilityRequest,IncomeResourceRequest}.wsdl; ejbModule/META-INF/xsd/{ShinesReferral,ShinesWICReferral}.xsd; 'worker-portal/IN/Providers WSDL/ShinesCCBatch.wsdl'; common/src/gov/state/nextgen/in/bo/SHINESReferralBO.java; webMethods/GAIES_SHINES{11_09062015,v12_02052016}.zip

bidirectional

SOAP web services (Axis2 stubs, WSDL from properties) plus batch-driven task creation

WSDL/XSD — child-care referral service and a WIC batch referral service

daily; weekly for the renewal-task job

jobs …​/batch-jobs/{IN-GWCCR-DLY,IN-SSCCR-DLY,IN-SSWCR-DLY,IN-SSCHNG-DLY,IN-SSRNTASK-WLY,IN-SNSHNRFS-DLY}.xml (package …in.batch.shines); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/shines/bo/impl/ShineCcRefSndBOImpl.java:626 + :658-662 (getShinesCcRefWsdl()); ShineWicRefSndBOImpl.java:139 (new ShinesWicBatchReferralServiceStub(getShinesCcRefWsdl())), :193-197

bidirectional

batch file

CSV; dis-dly-mapping.xml

daily

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-DISGT-DLY,IN-DISUH-DLY,IN-DISUI-DLY,IN-SNSHIDIS-DLY}.xml (package …in.batch.dis); javadoc gov/state/nextgen/in/batch/dis/bo/impl/DisUpdateDocInfoBOImpl.java: 'Gets DIS transaction id of NGGA0021 created to shines CC app/case'

bidirectional

SOAP web service (Axis2-generated stubs; endpoint/WSDL URL read from application properties) plus a DB-driven referral send job

WSDL/XSD: CcReferralBatchRequest / CcReferralBatchResponse, ChildCareReferralResp, CertificateInformation, CapsCertificateMetaData, IesCaseStatus; WIC batch referral service stub

daily (IN-SSCCR-DLY child-care referral send, IN-SSWCR-DLY WIC referral send, IN-SSCHNG-DLY changes, IN-GWCCR-DLY gateway CC, IN-SNSHNRFS-DLY referral file send); weekly renewal task IN-SSRNTASK-WLY

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/shines/bo/impl/ShineCcRefSndBOImpl.java:25-34 (generated CC-referral types + GAIES_SHINESWsProviderChildCareReferralResponseChildCareReferralResp_WSDStub), :617-626 (stub constructed with WSDL URL), :662-664 (URL from property key SHINES_CC_REFERRAL_URL); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/shines/bo/impl/ShineWicRefSndBOImpl.java:11,135-139 (ShinesWicBatchReferralServiceStub), :197-199 (property key SHINES_WIC_REFERRAL_URL); WSDL/XSD artifacts: worker-portal/IN/ejbModule/META-INF/wsdl/ShinesReferralService.wsdl, ShinesWicBatch.wsdl, ShinesWicReferralService.wsdl and META-INF/xsd/ShinesReferral.xsd, ShinesWICReferral.xsd; worker-portal/IN/Providers WSDL/ShinesCCBatch.wsdl; webMethods worker-portal/IN/webMethods/GAIES_SHINES11_09062015.zip, GAIES_SHINESv12_02052016.zip; alert INT076 in shines/bo/impl/ShinesRenewBoImpl.java:40

Mock-relevant facts
  • Request (~22): applicationReceivedDate, source(=SHI), childFirstName/LastName/MiddleInitial/Suffix, program(=MA), childGender, childDateOfBirth, childSSN (optional), childRace, childEthnicity, childAddress, requestingAid, priorMonthsCoverage, childPregnancyInd, email, transactionID, dfcsOfficeAddress, ctizenshipStatus (note the misspelling in the element name). Response (3): applicationNumber, responseCode, responseDescription. Address type: careOf, addrLine1(100), addrLine2(100), city(25), state(2), PstCode(10), County(5). Field-length table is explicit and worth mirroring exactly: ChildFName/MName/LName 30, ChildSuff 4, ChildRace 60, ChildEthncity 3, reqId 1, TranId 16. dfcsOfficeAddress = GA Division of Family and Children Services — confirms Georgia-specific, not shared-product code.

  • ShinesCCBatch.wsdl is the IES-side provider GAIES_SHINES.wsProvider.ChildCareReferralResponse / portType ChildCareReferralResp_WSD_PortType / single operation ChildCareReferralResp. Request shape ccReferralBatchRequest → iesCaseStatus{clientID, applicationNumber, transactionId, caseNumber, status, familyUnitSize, placement, denialClosureCode, denialClosureDescription, newEMPIID} plus provider block {providerName, certificateBeginDt, certificateEndDt, typeOfCare} and document block {docTransactionId, docId, docType, type, indvId, entryDt, source} (ShinesCCBatch.wsdl:20-48); response ccReferralBatchResponse→iesCaseStatusResp. Name says 'Batch' but it is a SOAP operation carrying a batch payload.

  • Merge-alert fan-out is three separate consumers to three downstream systems: updateMergeAlertService_IES (GenerateAlertTaskService_PortType_generateAlertTaskService), updateMegeAlertService_SHINES (sic — EmpiAlertWSPortType_saveEMPIAlert), updateMergeAlertService_STARS (UpdateMergeAlertServiceSoap_updateMergeAlert). Hand-modified provider WSDLs kept separately in SUCCESS modified WSDL_EMPI_V2.zip: detailSearchClientService_providerMod_21_Jul.wsdl, matchClientService_providerMod_24_Jul.wsdl, programParticipationService_providerMod_24_Jul.wsdl — mocks should follow the _providerMod variants, not the vendor originals.

  • THE ONLY REQUEST-THEN-CALLBACK SEQUENCE IN THE ESTATE, and it is implemented WITHOUT a WSDL callback: IES sends a child-care referral, and SHINES later delivers the outcome by invoking a SEPARATE inbound provider endpoint (ChildCareReferralResp) as a brand-new synchronous request. A mock must therefore act as a CLIENT as well as a server — after receiving a referral it must call back into the system under test on a different endpoint, with correlation carried in the payload only. Four referral flavors exist (generic, WIC, WIC-batch, child-care match) and the 'Batch' ones are still SOAP, not files.

  • Gateway-as-server. Namespaces 'referral.shines.services.business.ejb.nextgen.state.gov' (CC and general) and 'referral.wic.shines.services.business.ejb.nextgen.state.gov' (WIC). Note the file-name casing anomaly: Shine_CC.WSDL is the only uppercase-extension WSDL in the tree (case-sensitive build systems have historically tripped on this). Element 'chiildSuffix' is misspelled in Shine_CC.WSDL — reproduce verbatim.

  • Superset of ShinesReferral: adds applicationNumber, typeOfAction (Action type), indvId, placementCngEffDt, phoneNum, and replaces the plain-string citizenship with citizenshipStatus. Code table Action enumerates AFB | RMP | LSC (placement/action codes). Same address/length family as ShinesReferral. Response identical (applicationNumber, responseCode, responseDescription).

  • Gateway-as-client for both — proven by the Axis2 *Stub + batch BO for WIC, and by the wsProvider/ESB endpoint for CC. Neither appears in sun-jaxws.xml. ShinesCCBatch.wsdl’s targetNamespace (line 1) embeds an internal webMethods hostname. The directory name 'IN/Providers WSDL' contains a SPACE — build/tooling hazard worth noting for any migration script.

  • Gateway-as-server. Target namespaces are bare non-URI strings: 'IncomeResourceServiceNamespace' and 'medicaidEligibilityRequest_namespace' — reproduce verbatim. The partner is named only in the portType prefix (SHINES_…), not in the namespace.

  • Six distinct SHINES service contracts — the most fragmented partner. Note the real-time/batch pairing for both WIC and Child Care referrals: canopy needs both mock modes.

  • Not on the assigned marker list but a first-class partner. Access is role-gated (RT_TABLE_MESSAGE.sql:18756 restricts which worker roles may search SHINES applications).

  • Endpoint URLs are config keys only (no hostnames or credentials in source). The named WSDL/XSD files are the best mock contract for canopy.

  • Application.properties:481 already points at a MOCK SHINES CC referral URI in the SIT profile — direct precedent for a canopy test double.

  • Acronym NOT decoded. Transaction code NGGA0021 is the observable correlation key between DIS and SHINES.

  • CCR = child care referral, WCR = WIC referral, CHNG = change feed, RNTASK = renewal task.

  • 1,318 \bWIC\b hits. Dual transport (referral SOAP + assessment file).

DIS / Oracle WebCenter (document imaging)

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTP (Axis2-generated client stub)

WSDL 1.1; DocHistoryUpdateRequest (caseAppNum, docId, docType, docUploadType, indvSeqClientId, programInformation, srcInd)

real-time (on document upload/disposition)

worker-portal/IN/ejbModule/META-INF/wsdl/DocHistoryUpdateService.wsdl:63 (service DocHistoryUpdateService), :45 (portType DocHistoryUpdateServicePortType), :46 (operation DocHistoryUpdate); Axis2 client artifacts worker-portal/IN/ejbModule/gov/state/nextgen/services/dis/DocHistoryUpdateServiceStub.java and DocHistoryUpdateServiceCallbackHandler.java; config key DIS_CP_HISTORY_SERVICE_URL in IEApp_Properties/Local/Application.properties

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1; GenerateTaskRequest with documentInformation + nested caseInfo/applicationInfo collections, transactionId, periodicReportChangeSw

real-time (on document receipt/indexing in DIS)

worker-portal/IN/ejbModule/META-INF/wsdl/DocumentTaskService.wsdl:87 (service DocumentTaskService), :69 (portType DocumentTaskServicePortType), :70 (operation generateDocumentTask); sun-jaxws.xml endpoint DocumentTaskService, url-pattern=/DocumentTaskService, impl DocumentTaskServiceImpl

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp under /IES/services/*)

WSDL 1.1; request caseNumber/clientId/medicaidId → tplInsuranceCards (disDocMasterSeq, uploadDate)

real-time

worker-portal/IN/ejbModule/META-INF/wsdl/TplInsuranceCardService.wsdl:61 (service TplInsuranceCardSearchService), :43 (portType TplInsuranceCardSearchPortType), :44 (operation tplInsuranceCardSearch); sun-jaxws.xml endpoint TplInsuranceCardSearchService, url-pattern=/IES/services/TplInsuranceCardSearchService, impl TplInsuranceCardSearchPortTypeImpl

inbound (DIS → IES: 'documents arrived, create worker tasks')

SOAP web service

WSDL+XSD; targetNamespace taskgen.dis.services.business.ejb.nextgen.state.gov

real-time / event-driven, batched up to 500 documents per call

worker-portal/IN/ejbModule/META-INF/xsd/DocumentTaskService.xsd:2 (targetNamespace), :3-9 (GenerateTaskRequest: transactionId + documentInformation 1..500), :11-16 (GenerateTaskResponse: responseCode, responseMessage), :27-39 (DocumentInformation), :77-99 (Cases/CaseInfo, Applications/ApplicationInfo)

bidirectional

SOAP via webMethods ESB (4 operations) + a separate 'cloud' SOAP path direct to a DHS host (_dav/cs/idcplg) + daily batch + manifest files

WSDL; ESB paths GAIES_DIS.wsProvider.{NaviQuickAdvSearch, getFileByName_ById, docMetaData_userMetaData, checkInFunctions}; cloud paths /_dav/cs/idcplg/{FileByID, GWUpdateDocInfo, GWCheckinUniversal}?WSDL; BeanIO delimited dis-rcv-dly-mapping.xml (stream DisManifestFileStream) and csv dis-dly-mapping.xml (stream DisSndRecordStream)

real-time + daily (IN-DISGT-DLY, IN-DISUH-DLY, IN-DISUI-DLY, IN-SNSHIDIS-DLY, CO-DISCMF-DLY, CO-DISPMF-DLY, CO-DISID-DLY, CO-DISFAIL-DLY), weekly CO-DISRMF-WLY, on-request CO-DISMNT-ONR / CO-DISNT-ONR

worker-portal/IEApp_Properties/Local/Application.properties:230-258 (DIS_SEARCH_*, DIS_GET_FILE_*, DIS_USER_METADATA_*, DIS_CHECKIN_* triads each with _LOG_SWITCH/_XML_SWITCH/_TIME_SWITCH), :391-397 (CP_APPID_ODDC_SERVICE_URL triad, DIS_CP_HISTORY_SERVICE_URL), :523-530 (DIS_CHECKIN_CLOUD_XML_SWITCH, DIS_CHECKIN_CLOUD_LOG_SWITCH, DIS_GET_FILE_CLOUD_SERVICE_URL, DIS_UPDATE_CLOUD_SERVICE_URL, DIS_CHECKIN_ClOUD_SERVICE_URL [sic], DIS_USER_ID, DIS_USER_PWD), :559 (DIS_DECRYPT_KEY); worker-portal/IEApp_Properties/Local/in.properties:8-13, 21-23 (SNAP/TANF/MEDICAID/CHILDCARE/WIC_ELIG_PERIOD used by DIS upload rule; WS_TIMEOUT_DIS_GETFILE, WS_TIMEOUT_DIS_UPDATEDOC, WS_TIMEOUT_DIS_CHECKIN); worker-portal/IEApp_Properties/local_batch/Application.properties:251 (DIS_FILE_PATH); worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:121-128 (inbound DocumentTaskService, ODDCValidationWebService)

outbound

SOAP via webMethods GAIES_DIS.wsProvider.CheckInUniversal

WSDL-generated JAXB, Oracle-UCM-shaped. Request CheckInUniversal{DocName, DocTitle, DocType, DocAuthor, SecurityGroup, DocAccount, CustomDocMetaData{Property[]}, PrimaryFile, AlternateFile, ExtraProps} → CheckInUniversalResponse → CheckInUniversalResult{StatusInfo}; fault family Code/SubCodes/Reasons/Detail

real-time, per applicant document upload

Call: customer-portal/bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2137 (uploadDocument), :560 (calluploadDocumentWebService), :572 (AppConstants.WS_TIMEOUT_DIS_CHECKIN). Stubs: bridgesClient/nscheckinuniversal/ — CheckInUniversal.java:57-73 (field list), CustomDocMetaData.java:41, GAIESDISWsProviderCheckInUniversal.java:18/:31 (wsdlLocation on a webMethods IS at port 5555 — internal IP present in the generated annotation; path recorded, value not reproduced), CheckInUniversalResult.java, StatusInfo.java, PrimaryFile.java, AlternateFile.java, ExtraProps.java

inbound (pull)

SOAP via webMethods GAIES_DIS.wsProvider:getFileByName_ById

WSDL-generated JAXB. portType GetFileByNameByIdPortType; operations GetFileByName → GetFileByNameResponse{GetFileByNameResult} and GetFileByID → GetFileByIDResponse{GetFileByIDResult}; payload types DownloadFile, FileInfo, CustomDocMetaData, ExtraProps, Detail (each duplicated as *2 for the second operation’s schema)

real-time, on document view/download

Call: customer-portal/bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2271 (getFileById), :666 (callDownloadDocumentWebService), :711 (callretrieveDocumentWebService). Stubs: bridgesClient/nsgetfilebyname_byid/GAIESDISWsProviderGetFileByNameById.java:18 (@WebServiceClient name/targetNamespace/wsdlLocation …/ws/GAIES_DIS.wsProvider:getFileByName_ById?WSDL on [vendor host withheld] port 5555), :68-82 (port accessors); GetFileByNameByIdPortType.java; DownloadFile(2).java; FileInfo(2).java

outbound

SOAP, direct service DocumentTaskService at /cpsecure/DocumentTaskService?wsdl

WSDL + XSD. portType DocumentTaskServicePortType, operation generateDocumentTask (GenerateTaskRequest → GenerateTaskResponse). Shapes: DocumentInformation, CaseInfo, Cases, ApplicationInfo, Applications

real-time, on document submission

WSDLs: customer-portal/bridgesClient/META-INF/TaskGeneration/DocumentTaskService.wsdl:2 (definitions, targetNamespace taskgen.dis.services.business.ejb.nextgen.state.gov), :51-59 (portType/operation), :69-71 (service + soap:address); duplicate at bridgesClient/META-INF/wsdl/DocumentTaskService.wsdl:50-70. JAXB: bridgesClient/gov/state/nextgen/ejb/business/services/dis/taskgen/ (DocumentTaskService.java, DocumentTaskServicePortProxy.java, DocumentTaskServicePortType.java, GenerateTaskRequest.java, GenerateTaskResponse.java, DocumentInformation.java, CaseInfo.java, Cases.java, ApplicationInfo.java, Applications.java). Key: sharedApp/…​/AppConstants.java (TASK_GEN_SERVICE); endpoint framework/properties/config/production_env.properties:256

bidirectional

SOAP over HTTPS (IES wsProvider facade over the UCM SOAP API) + MFT inbound file

WSDL + XSD

real-time; plus an inbound file feed

worker-portal/IEWebApp/WebContent/wsdl/DISServiceIntegration/GAIES_DIS_wsProvider_{NaviQuickAdvSearch,checkInFunctions,docMetaData_userMetaData,getFileByName_ById}_Port_1.wsdl — ops SearchSoap_NavigationSearch, SearchSoap_QuickSearch, serchSoap_QuickSerchAdvSer, checkInSoap_CheckInUniversal, checkInSoap_UpdateDocInfo, metaDataSoap_DocMetaData, metaDataSoap_UserMetaData, getFileSoap_GetFileByID, getFileSoap_GetFileByName; all document/literal, MEP input+output. Also GAIES_DISwsProvidercheckInFunctions.wsdl in worker-portal/IN/ejbModule/META-INF/jax-ws-catalog.xml. Batch: [secret-bearing path withheld]:1547 (DIS_IES_INBOUND_FILE). Canonical header: interfaceCode=DIS, direction=Outbound

bidirectional

SOAP

WSDL+XSD, Oracle IDC doc types (s0:IdcFile, s0:IdcProperty, s0:IdcPropertyList, s0:StatusInfo)

real-time

worker-portal/IN/webMethods/GAIES_DIS_Full_v1.zip → ns/GAIES_DIS/wsConsumer/{checkIn_,getFile_,metaData_,Search_}/connectors/* , ns/GAIES_DIS/services/* , ns/GAIES_DIS/wsProvider/{checkInFunctions,getFileByName_ById,docMetaData_userMetaData,NaviQuickAdvSearch}, ns/GAIES_DIS/utility/getEndPointURL; inbound file event DIS_IES_INBOUND_FILE in [secret-bearing path withheld]

bidirectional

SOAP via webMethods IS package GAIES_DIS on :3333, four services: wsProvider.checkInFunctions, wsProvider.docMetaData_userMetaData, wsProvider.naviQuickAdvSearch, wsProvider.getFileByName_ById; PLUS DocumentTaskService and DocHistoryUpdateService (Axis2, :9081/:9106); PLUS a separate 'discloud' check-in and getfilecloud path

WSDL+XSD (DocumentTaskService.xsd)

real-time (document check-in / retrieval / metadata)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/{checkinupdated/GAIES_DISWsProviderCheckInFunctionsStub,checkinupdateddiscloud/GWCheckInStub,metadata/GAIES_DISWsProviderDocMetaData_userMetaDataStub,search/GAIES_DISWsProviderNaviQuickAdvSearchStub,getfile/GAIES_DISWsProviderGetFileByName_ByIdStub}.java; ejbModule/…​/getfilecloud/; ejbModule/gov/state/nextgen/services/dis/DocHistoryUpdateServiceStub.java; ejbModule/…​/dis/taskgen/DocumentTaskService.java:17; ejbModule/META-INF/wsdl/{GAIES_DISwsProvidercheckInFunctions,DocumentTaskService,DocHistoryUpdateService}.wsdl; ejbModule/META-INF/xsd/DocumentTaskService.xsd; common/src/gov/state/nextgen/in/bo/{DISMetaDataBO,DISSearchBO,DocumentTaskBO,DocumentTaskServiceBO,DocumentCpHistBO,GetFileBO,InDisDocMasterBO,InDisDocMasterCloudBO,UpdateDocInfoBO}.java; webMethods/GAIES_DIS*.zip (5 versions)

bidirectional

batch file (BeanIO csv outbound); inbound side is table-driven document metadata (IN_DIS_DOC_MASTER) with real-time SOAP check-in functions alongside

outbound delimited, 3 fields: appNum, caseNum, transactionId. Inbound: document-info updates and generated document tasks against IN_DIS_DOC_MASTER (cargo InDisDocMasterCargo)

daily (IN-SNSHIDIS-DLY out; IN-DISUI-DLY document-info update, IN-DISUH-DLY, IN-DISGT-DLY task generation)

worker-portal/BATCH/IN/src/resource-mapping/dis-dly-mapping.xml (stream DisSndRecordStream, format=csv, 3 fields); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNSHIDIS-DLY.xml:51-53; IN-DISUI-DLY.xml:35 (DisUpdateDocInfoReader); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/dis/util/DisUtil.java:1-6,34-40 (InDisDocMasterCargo/Collection); related real-time contract worker-portal/IN/ejbModule/META-INF/wsdl/GAIES_DISwsProvidercheckInFunctions.wsdl

bidirectional (outbound PDFs + manifest to webMethods; inbound manifest/ID confirmation files)

webMethods (ESB) file drop location; PDFs copied file-by-file then the manifest copied last as the completion signal; SFTP staging for PDF creation

delimited + CSV BeanIO manifest streams (DisManifestFileStream delimited, DisIdFileStream csv, disNoticeTypeWriter csv); payload is PDF documents

daily (CMF/MMF/PMF/ID/FAIL manifests, PDF creation, envelope); weekly (recovery manifest RMF); on-request (DISNT/DISMNT)

worker-portal/BATCH/CO/src/META-INF/batch-jobs/CO-DISCMF-DLY.xml:6-9 (comment: reads manifest, copies individual PDFs to webMethods location, then copies the manifest file last), :57-70 (DisManifestCopyReader/Processor/Writer, stream DisManifestFileStream). CO/src/META-INF/batch-jobs/CO-DISRMF-WLY.xml:8 (recovery manifest → webMethods). CO/src/META-INF/batch-jobs/CO-CREATEPDF-DLY.xml:6 (PDF created in the SFTP location if not already present). Layouts: CO/src/resource-mapping/dis-rcv-dly-mapping.xml:3 (DisManifestFileStream, delimited), :7 (DisManifestFileHeader), :27 (DisManifestFileRecord), :48 (DisIdFileStream, csv), :55 (DisIdFileRecord); CO/src/resource-mapping/disNoticeTypeWriter.xml:4 (csv). Other jobs: CO-DISCMF-DLY, CO-DISMMF-DLY, CO-DISPMF-DLY, CO-DISRMF-WLY, CO-DISID-DLY, CO-DISFAIL-DLY, CO-DISNT-ONR, CO-DISMNT-ONR. Gathering batchlet: CO/src/gov/state/nextgen/co/batch/batchlet/DisManifestFileGatheringBatchlet.java:120-126 (underscore-delimited filename parsing, .txt→.pdf name mapping against an AEM PDF path).

inbound

SOAP (JAX-WS providers; WSDLs published from the customer-portal services WAR)

WSDL+XSD, one request/response type pair per operation. Families and namespaces: AccountLinkService (acclink.services.access.nextgen.state.gov — Insert/Update/Delete); CPAccSearchService (CPAccSearch.services.access.nextgen.state.gov — CPAccSearch, CPCaseLinkAccDetails, CPAccountVerify, CPCaseLinkDelink); CustPortAppService/cpas (cpas.services.access.nextgen.state.gov — CustPortAppRequest/Response with PersonType, ProgramType, CaseNumberorApplicationNumberType); CPDisasterSearchService (CPDisasterSearch.services.access.nextgen.state.gov — DisasterInfoType); DSNAPVerificationService (dsnapverificationservice.services.nextgen.state.gov — RequestUserDetailsReq/Resp); ChangeNotificationService (Insert/Update); EmailVerificationService/everi (everi.services.access.nextgen.state.gov); PhoneVerificationService; IVRPhoneVerificationService and MobileIVREmailVerificationService (RequestOTPReq/Resp, VerifyOTPReq/Resp); PasswordResetService; PasswordUpdateService; PathwaysSearchService; CreateUpdateAccountServiceCP; NoticeLinkService (ExtractNotices, ViewNotices); DocHistoryUpdateService (dis.services.nextgen.state.gov); DocumentLogOnService (ns "nslogonIES" — LogonIES, GenerateTask)

real-time request/response

Generated artifacts + BO implementations: customer-portal/commonApp/gov/state/nextgen/access/services/{acclink,cpaccsearch,cpas,cpdisastersearch,createupdateuser,everi,noticelink,notification,passwordreset,passwordupdate,phoneverification,PathwaysSearchService}/ and commonApp/gov/state/nextgen/services/{dis,dsnapverificationservice,ivrphoneverificationservice,mobileivremailverificationservice,bo}/ and commonApp/gov/state/nextgen/ejb/business/services/disLogOn/. Namespaces: commonApp/gov/state/nextgen/access/services/acclink/AccountLinkServicePortType.java:15; cpaccsearch/CPAccSearchServicePortType.java:15,30-69; cpdisastersearch/CPDisasterSearchServicePortType.java:15; cpas/CustPortAppService.java:18; everi/EmailVerificationService.java:18; PathwaysSearchService/PathwaysSearchServicePortType.java:15; passwordupdate/PasswordUpdateServicePortType.java:18; services/dis/DocHistoryUpdateService.java:18; services/dsnapverificationservice/DSNAPVerificationServicePortType.java:15,30-32; services/mobileivremailverificationservice/MobileIVREmailVerificationService.java:15,30-44; ejb/business/services/disLogOn/DocumentLogOnServicePortType.java:15,30-32. Published WSDL set: customer-portal/services/WebContent/WEB-INF/wsdl/ (19 files)

Mock-relevant facts
  • DocumentInformation (13): docId, docType, type, cases (0..500 CaseInfo{caseNum, program}), clientId, applications (0..500 ApplicationInfo{appNum, program}), indvSeqNum, dateOfEntry, dateOfReceipt, programs, periodicReportChangeSw, renewalDueSw, periodicReportDueSw. The three switches are what drive renewal/periodic-report task routing — canopy’s verification/renewals mock needs them. Sibling WSDL dir IEWebApp/WebContent/wsdl/DISServiceIntegration/ has 4 more DIS operations (checkInFunctions, docMetaData/userMetaData, getFileByName/ById, NaviQuickAdvSearch) — .wsdl, outside my surface.

  • Manifest-last ordering is the integration contract (the manifest is the atomic commit signal to the vendor) — a canopy mock must preserve it or the vendor side will pick up partial batches. Filenames are underscore-delimited and paired .txt/.pdf; PDFs are sourced from an AEM (Adobe Experience Manager) render path. Standard notice PDFs also live as static assets: FGG551.pdf plus locale variants FGG551_EL.pdf/FGG551_ES.pdf/FGG551_SL.pdf, and mail-assembly assets CoverSheet.pdf, BlankSheet.pdf, Envelope.pdf, OverWeightSheet.pdf.

  • Provider shape is uniform: BO.processRequest(Req) → Resp with a numeric responseCode + responseDescription; canonical codes seen: "0000"/success upstream, "002" client-info mismatch, "999" internal error (CPAccSearchBO.java:186-196). Handler BOs: CPAccSearchBO.java:37,105,137,176; EmailVerificationServiceBO.java:21; PhoneVerificationServiceBO.java:21; ChangeNotificationServiceBO.java; CustPortAppServicePortTypeBO.java. Note the WSDLs are the best mock source — they are real published contracts, not generated stubs.

  • Operations: CheckInList, CheckInUniversal, CheckOut, CheckOutByName, UndoCheckOut, UndoCheckOutByName, UpdateDocInfo, GetFileByID, GetFileByName, DocMetaData, UserMetaData, QuickSearch, AdvancedSearch, NavigationSearch. Note AdvancedSearch has a consumer connector but the IES-facing flow is the merged serchSoap_QuickSerchAdvSer (sic). getEndPointURL means the endpoint is resolved at runtime from the GAIES_Common PARAMETER table, not hardcoded — mocks need the same indirection.

  • Nine synchronous ops grouped into four provider endpoints by function (search / check-in / metadata / retrieval). Document upload is checkInSoap_CheckInUniversal (synchronous, returns an id); retrieval is by ID or by NAME — two distinct lookup modes a mock must support, including the not-found path. Op names contain vendor typos (serchSoap_QuickSerchAdvSer) that must be reproduced verbatim in any mock WSDL.

  • Gateway-as-client — proven by the Axis2 *Stub/*CallbackHandler pair and the absence of any sun-jaxws registration. Note this one uses Axis2, not JAX-WS, unlike most of the surface. targetNamespace 'dis.services.nextgen.state.gov'. A same-named WSDL exists in the customer-portal repo.

  • Gateway-as-server. targetNamespace 'insuranceCardSearch.tpl.services.business.ejb.nextgen.state.gov'. Daily TPL batches surround it (IN-RCTPL-DLY, IN-RCVPCKTPL-DLY, IN-RCVPTHTPL-DLY, IN-RCVTPLERR-DLY). A copy exists in the customer-portal repo.

  • SecurityGroup + DocAccount + CheckInUniversal is the Oracle WebCenter Content (formerly Stellent UCM) IdcService vocabulary — useful signal for canopy’s document-store abstraction.

  • Gateway-as-server. targetNamespace 'taskgen.dis.services.business.ejb.nextgen.state.gov'. Copies of this WSDL also exist in the customer-portal repo (TaskGeneration/ and wsdl/).

  • The on-prem/cloud fork (checkinupdated vs checkinupdateddiscloud, getfile vs getfilecloud) is a live migration in flight — canopy should model one document interface, not two.

  • DIS = document imaging; the batch side is thin (3-field handoff) because the substantive exchange is the SOAP check-in service in the IN EJB module (outside this surface).

  • DIS_CHECKIN_ClOUD_SERVICE_URL has an inconsistent capitalization ('ClOUD') that a strict key lookup would miss.

  • Only AppConstants references TASK_GEN_SERVICE — no live caller found in customer-portal.

  • Paired with CheckInUniversal above; together they are the DIS read/write contract.

FFM / marketplace account transfer (ATX)

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoints published by IEWebApp; quick-denial also driven from the DC batch)

WSDL 1.1 document/literal, one operation per service

real-time for auto-registration/clone; batch (no-touch nightly) for quick denial

worker-portal/IEWebApp/WebContent/wsdl/DcAutoAppRegistration/DcAutoAppRegistration.wsdl:37 (service DcAutoAppRegistrationService), :19 portType DcAutoAppRegistrationBean, :20 op registerApplication; worker-portal/IEWebApp/WebContent/wsdl/DcCloneApplication/DcCloneApplication.wsdl:38 (service DcCloneAppService), :20 portType DcCloneAppBean, :21 op cloneApplication; worker-portal/IEWebApp/WebContent/wsdl/DcQuickDenialWs/DcQuickDenialWs.wsdl:37 (service DcFfmQuickDenialService), :19 portType DcFfmQuickDenialBean, :20 op quickDenyFfmApplication. Server beans worker-portal/IEWebApp/src/gov/state/nextgen/business/ejb/services/dc/autoreg/DcAutoAppRegistrationBean.java and …​/dc/cloneapp/DcCloneAppBean.java; sun-jaxws.xml endpoints DcAutoAppRegistration and DcCloneApp. Quick-denial batch consumers: worker-portal/BATCH/DC/src/gov/state/nextgen/dc/batch/chunk/reader/DcNoTouchFfmQuickDnlReader.java, …​/partition/DcNotouchQuickDnlPartition.java

inbound (this WSDL); the outbound leg runs from batch

SOAP 1.2 over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1 + external XSD — includes ../xsd/XMLschemas/constraint/exchange/ExchangeModel.xsd; namespace http://at.dsh.cms.gov/exchange/1.0 (CMS Account Transfer 1.0)

real-time per transfer

worker-portal/IN/ejbModule/META-INF/wsdl/accountTransfer4IES.wsdl:41 (service AccountTransferService), :20 (portType AccountTransferPortType), :21 (operation transferAccount), :12-18 (messages TransferRequest/TransferResponse bound to exch:AccountTransferRequest / exch:AccountTransferResponse), :8 (xsd:include of ExchangeModel.xsd), soap12 binding at :31. Registered in worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:51-53 (AccountTransferService → /AccountTransferService, impl AccountTransferPortTypeImpl). Outbound leg: worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ffm/bo/impl/INFfmSndBOImpl.java

bidirectional (AccountTransferRequest inbound from Marketplace and outbound to Marketplace; AccountTransferResponse the ack)

SOAP/XML (NIEM-conformant); two schema sets shipped: constraint and unconstrained

WSDL+XSD, NIEM 2.x with CMS HIX domain; targetNamespace http://at.dsh.cms.gov/exchange/1.0 (+ http://at.dsh.cms.gov/extension/1.0)

real-time / event-driven per application

worker-portal/IN/ejbModule/META-INF/xsd/XMLSchemas/constraint/exchange/ExchangeModel.xsd:8 (targetNamespace), :13 (documentation: "transfer of an account from the Marketplace to Medicaid/CHIP or from Medicaid/CHIP to the Marketplace"), :25-28 (roots AccountTransferRequest / AccountTransferResponse); worker-portal/IN/ejbModule/META-INF/xsd/XMLSchemas/constraint/extension/ExtensionModel.xsd:73-98 (payload composition), :115-133 (TransferActivityCode enum: Exchange | MedicaidCHIP), :181-190 (atVersionText enum: 2.4); header comment ExchangeModel.xsd:2 = "AT-041916-MD" (April 2016 AT release)

bidirectional

SOAP

WSDL + NIEM hix-core / hix-ee / hix-pm / hix-types XSDs (constrained + unconstrained variants), accountTransfer4IES.wsdl

real-time; plus daily FFM jobs IN-SNFFM-DLY, IN-RCFFM-DLY

worker-portal/IN/ejbModule/META-INF/wsdl/accountTransfer4IES.wsdl; NIEM hix schemas worker-portal/IN/ejbModule/META-INF/xsd/XMLSchemas/{constraint,unconstrained}/niem/domains/hix/0.1/; ExchangeModel.xsd and ExtensionModel.xsd in the same trees; batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ffm/; jobs IN-SNFFM-DLY.xml, IN-RCFFM-DLY.xml

bidirectional

SOAP via webMethods ESB (outbound transferAccount); Gateway EXPOSES an inbound JAX-WS AccountTransferService with an explicit HTTP (non-SOAP-1.1) binding; plus daily receive/send batch

WSDL+XSD provider path IES_COMPASS.wsProvider.transferAccount/AccountTransferPort

real-time + daily (IN-RCFFM-DLY, IN-SNFFM-DLY, DC-FFMPATHWAYS-DLY)

worker-portal/IEApp_Properties/Local/Application.properties:572 (FFM_COMPASS_SERVICE_URL), :374-380 (FFM_SPLIT, FFM_USER, FFM_ATTEMPT_LIMIT with comments describing EMPI-gated routing to SUCCESS vs IES), :403-404 (EMPI_SUCCESS_INDICATOR_SERVICE_URL, 'used by FFM Interface to check client success indicator'); worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:51-55 (AccountTransferService, binding=…​/soap/bindings/HTTP/)

bidirectional

SOAP over HTTP

WSDL + NIEM-based XSD (ACA Account Transfer 1.0)

real-time, synchronous request/reply

worker-portal/IN/ejbModule/META-INF/wsdl/accountTransfer4IES.wsdl — tns http://at.dsh.cms.gov/exchange/1.0, service AccountTransferService, portType AccountTransferPortType, op transferAccount, document/literal, MEP input+output, address http://<HOST>/AccountTransferService; registered in worker-portal/IN/ejbModule/META-INF/jax-ws-catalog.xml

bidirectional

JDBC (Oracle) + webMethods triggers/notifications; MFT post-processing callbacks into IS

relational tables + IS document types

continuous

worker-portal/IN/webMethods/GAIES_Common_Full_v1.zip → ns/GAIES_Common/jdbc/adapterServices/{selectAPP_INTF,selectERROR_CONFIG,selectLOG}, ns/GAIES_Common/parameter/jdbc/{insertPARAMETER,adapterServices/selectAllPARAMETERS}, ns/GAIES_Common/parameter/hash/loadPARAMETERS, ns/GAIES_Common/trg/{subscribeLog,subscribeError}, ns/GAIES_Common/doc/notification, ns/GAIES_Common/caf/* (CRUD screens for APP_INTF/INTERFACE/PARAMETER/LOG_CONFIG); connection at GAIES_Common_JDBC_Full_v1.zip → ns/GAIES_Common_JDBC/connections/wmCommon; schema in worker-portal/IN/webMethods/DROP_Tables.sql (ERROR, ERROR_CODE, ERROR_CONFIG, LOG, NOTIFICATION, NOTIFICATION_CONFIG) and registry rows in GAIES_Common.sql / [withheld] / GAIES_IVR.sql / GAIES_STARS_sql_v1.txt (INTERFACE, APP_INTF, PARAMETER, LOG_CONFIG)

bidirectional

SOAP (both JAX-WS client and Axis2 stub variants present); also a COMPASS-branded transfer stub

WSDL+XSD, NIEM 2.x (subset/constraint/unconstrained) + HIX core/ee/pm/types 0.1 schema set; targetNamespace http://at.dsh.cms.gov/exchange/1.0

real-time transfer request/response

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/ffm/AccountTransferService.java:17 (@WebServiceClient targetNamespace="http://at.dsh.cms.gov/exchange/1.0"); ejbModule/…​/ffm/axis/AccountTransferServiceStub.java; ejbModule/…​/ffm/compass/axis/IES_COMPASSWsProviderTransferAccountStub.java (SOAP action http://at.dsh.cms.gov/exchange/1.0/AccountTransferPortType/transferAccountRequest); ejbModule/META-INF/wsdl/accountTransfer4IES.wsdl; ejbModule/META-INF/xsd/XMLSchemas/{constraint,unconstrained}/{exchange,extension,niem,subset}/**

bidirectional

SOAP web service (Axis2 generated stub, WSDL URL read from a properties file at runtime)

WSDL/XSD — AccountTransferService; JAXB types (e.g. TaxFilerType, InformationExchangeSystemType)

daily job wrapper around real-time service calls

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-RCFFM-DLY,IN-SNFFM-DLY}.xml; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ffm/bo/impl/INFfmSndBOImpl.java:241 (new AccountTransferServiceStub(getFFMWsdl())), :381-385 (getFFMWsdl() reads the WSDL location from the properties file)

outbound

SOAP web service (same AccountTransferService stub family as FFM)

WSDL/XSD — AccountTransferService

daily

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNGAR-DLY.xml; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gar/bo/impl/INGarSndBOImpl.java:240 (new AccountTransferServiceStub(getFFMWsdl())), :363-367

outbound

SOAP web service (Axis2 generated stub; WSDL URL read from a properties file)

WSDL+XSD — AccountTransferService / AccountTransferPortType, target namespace http://at.dsh.cms.gov/exchange/1.0; JAXB-marshalled AccountTransferRequestPayloadType built by FFM AccountTransferBO from person/eligibility/tax-return DAOs

daily (batch-driven send)

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ffm/bo/impl/INFfmSndBOImpl.java:241 (new AccountTransferServiceStub(getFFMWsdl())), :381-390 (WSDL from property file); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ffm/util/AccountTransferBO.java:1060 (JAXB.marshal of AT request); worker-portal/IN/ejbModule/META-INF/wsdl/accountTransfer4IES.wsdl:4,7,20,27,41-43; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNFFM-DLY.xml:35-45

inbound

SOAP endpoint hosted by IES; payload persisted to an XML staging table, then consumed by a daily batchlet

XML — AccountTransferRequestPayloadType / AccountTransferResponsePayloadType unmarshalled from a BinaryDocument stored in IN_ACT_XML_PAYLOAD_STG

real-time receipt, daily batch processing

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ffm/bo/impl/INFfmRcvBoImpl.java:3-11 (InActXmlPayloadStgCargo/Collection, AccountTransferRequestPayloadType, AccountTransferResponsePayloadType, FfmCompassBO), :41-46 (getAcctTransTriggers reads staged payloads), :76 (ffmUtil.unmarshall(binaryDocument)); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCFFM-DLY.xml:50 (InRcvFfmBatchlet)

outbound

SOAP web service (same AccountTransferServiceStub as FFM; WSDL from properties)

WSDL+XSD AccountTransfer (CMS DSH exchange model); JAXB-marshalled AccountTransferRequest built by GARAccountTransferBO

daily

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gar/bo/impl/INGarSndBOImpl.java:240 (new AccountTransferServiceStub(getFFMWsdl())), :363-370; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gar/util/GARAccountTransferBO.java:1104,1141; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNGAR-DLY.xml:35-45

inbound

batch (DB-staged application requests processed by batchlet; the wire receipt happens outside my surface)

staged application-request records (T1001AppRqstCargo), not a file layout within BATCH

daily

worker-portal/BATCH/DC/src/gov/state/nextgen/dc/batch/batchlet/DcNoTouchDuplicateFFMBatchlet.java:16,24 (selects getAllFFMDuplicateApps over T1001AppRqstCargo[]). DC/src/gov/state/nextgen/dc/batch/bo/DcNoTouchBO.java:23-24 (getFfmQuickDenialApps, processAppRegAndDispostion over DcFfmQuickDnlReaderVO), :45 (invokeDenialFfmTrigger). Jobs: DC/src/META-INF/batch-jobs/DC-FFMPATHWAYS-DLY.xml, DC-PTHCASCADE-DLY.xml; DC/src/batch-fast4j-properties/DC-FFMPATHWAYS-DLY-fast4jCustomDAOsList.properties. Related ED jobs: ED-PATHWAYSED078-MLY.xml, ED-PATHWAYSAUDITED052-DLY.xml, ED-PATHWAYSQATRACKERED049-MLY.xml, ED-PTHWAV-MLY.xml, ED-AUTORENTRIGPTH-MLY.xml.

Mock-relevant facts
  • AccountTransferRequestPayloadType (ExtensionModel.xsd:83-95) sequence = ext:TransferHeader (1) + hix-core:Sender (1..500) + hix-core:Receiver (1..500) + hix-ee:InsuranceApplication (1) + hix-ee:Assister (0..1) + hix-ee:AuthorizedRepresentative (0..1) + hix-ee:MedicaidHousehold (0..500) + hix-core:Person (1..500) + hix-ee:TaxReturn (0..500) + hix-core:VerificationMetadata (0..500) + ext:PhysicalHousehold (1..500); required attribute ext:atVersionText. Response payload = ext:ResponseMetadata only. hix-ee top elements: APTCEligibility, CSREligibility, CHIPEligibility, CHIPIdentification, MedicaidEligibility, MedicaidMAGIEligibility, MedicaidNonMAGIEligibility, EmergencyMedicaidEligibility, RefugeeMedicalAssistanceEligibility, ExchangeEligibility, HouseholdAGI, HouseholdMAGI, HouseholdTaxableSocialSecurityBenefitsIncome, PrimaryTaxFiler, SpouseTaxFiler, TaxDependent, TaxHousehold, TaxReturnYear, ESIAugmentation, LawfulPresenceDocumentCategoryCode, SEPQualifyingEventCategoryCode, DisenrollmentActivityReasonCode, ReferralActivityReasonCode. hix-core: DHS-G845VerificationCode, DHS-SAVEVerificationCode, DHS-SAVEVerificationSupplement, FFEVerificationCode, AddressVerificationCode, IncomeCategoryCode, ExpenseCategoryCode, FrequencyCode, IncomeHoursPerWeekMeasure/HoursPerPayPeriodMeasure/DaysPerWeekMeasure, FamilyRelationshipCode, PersonTribeName, TribalAugmentation, VerificationAuthorityName, VerificationAuthorityTDS-FEPS-AlphaCode, ResponseCode/ResponseDescriptionText/TDSResponseDescriptionText. hix-types code lists (34 simpleTypes, the canonical code tables to mirror): AbsentParentOrSpouseCode, ActuarialValueMetallicTierCode, AddressVerificationCode, CaretakerDependentCode, ContactInformationCategoryCode, ContactPreferenceCode, DHS-SAVEVerificationCode, DisenrollmentReasonCode, EligibilityBasisStatusCode, EligibilityProgramCode, EmployerInsuranceSponsorshipStatusCode, EmploymentStatusCode, EnrollmentCode, ExpenseCategoryCode, FFEVerificationCode, FamilyRelationshipHIPAACode, FrequencyCode, G845Code, HouseholdSizeVerificationMethodCode, ImmigrationDocumentCategoryCode, IncomeCategoryCode, IncomeCompatibilityVerificationMethodCode, InformationExchangeSystemCategoryCode, InsurancePlanVariantCategoryAlphaCode, InsuranceSourceCode, PlanYearCategoryCode, ReferralActivityReasonCode, ReferralActivityStatusCode, SEPQualifyingEventCategoryCode, TDS-FEPS-AlphaCode, TaxReturnFilingStatusCode, VerificationCategoryCode, VerificationStatusCode. constraint and unconstrained copies differ (hix-ee 191 diff-lines, niem-core 140) — the constraint set is the validating one; mocks should validate against constraint.

  • Every interface is registered by INTF_CODE in the INTERFACE table with APP_CODE 'GAIES'; endpoints are resolved at runtime from PARAMETER (see GAIES_DIS/utility/getEndPointURL) rather than being compiled in. Observed INTF_CODE values in the SQL present here: Adobe_CorrespondencePreview_NoMark, GAIES_EMAIL, IVR_Authentication, IVR_MainService, IVR_childCareMatchService, IVR_fsLookupService, IVR_tanfLookupService, IVR_medicaidCaseMatchService, IVR_p4hbLookupService, IVR_pCKMatchService, STARS_participationStatusInquiry. MFT jobs call back into IS via GAIES_Batch.services:publishBatchLog and :publishBatchLogWithNotify — that is the batch completion/notification hook a canopy mock harness would need to emulate. CAUTION: worker-portal/IN/webMethods/Deployment_Instructions.txt contains named individual email addresses and an internal mail identity — path recorded only, contents not extracted.

  • Single op transferAccount carrying a whole application payload. Deployed as a JAX-WS endpoint in the Interfaces EJB module (NOT webMethods) — worker-portal/IN/ejbModule/META-INF/ejb-jar.xml declares <display-name>Interfaces</display-name> with NO beans, so the endpoints are annotation-driven and the catalog file is the only inventory of them. Synchronous ack-in-response (the SOAP response IS the acknowledgement); no separate ack message, no callback. Related quick-denial path exists at IEWebApp/WebContent/wsdl/DcQuickDenialWs/DcQuickDenialWs.wsdl (op quickDenyFfmApplication).

  • DcAutoAppRegistration and DcCloneApp are Gateway-as-server (registered in sun-jaxws.xml). DcQuickDenialWs is the odd one out: NO server bean and NO sun-jaxws registration exist in this repo — the WSDL is an orphaned contract while the actual quick-denial runs through the DC no-touch batch. Namespaces: http://autoreg.dc.services.ejb.business.nextgen.state.gov, http://cloneapp…, http://quickdenial…

  • Payload composition surface is large: ffm/util has 40+ BO/DAO/model classes (Person, InsuranceApplication, InsuranceApplicant, TaxReturn, Eligibility, AuthorizedRepresentative, Assister, MedicaidHousehold, PhysicalHousehold, QuickDenial variants) plus FFMConstants/FFMResponseCodesEnum/FFMProcessEnum — the de-facto AT field dictionary.

  • Gateway-as-server. SOAP 1.2 (not 1.1) — a canopy mock bound to SOAP 1.1 will not match. The real payload lives entirely in the included ExchangeModel.xsd (CMS AT 1.0), so fixture generation must start from that XSD, which is NOT inside the WSDL. Config key FFM_COMPASS_SERVICE_URL in IEApp_Properties/Local/Application.properties.

  • My surface shows the downstream consumption of FFM account transfers (dedupe, quick-denial, cascade), not the SOAP/XSD receipt itself — the actual CMS AT interface almost certainly lands in the IN subtree (another agent’s). Canopy mocks should treat this as the post-ingest contract; the wire contract needs the IN findings.

  • gar/util is a near-clone of ffm/util (GAREligibilityBO, GARInsuranceApplication*, GarPersonBO/DAO, TaxReturnBO/DAO, AccountVerificationBO/DAO) — a second AT variant, so mocks should be parameterized rather than duplicated.

  • Largest schema surface in the module. Two parallel generated trees (ffm/* and ffm/compass/*) with identical NIEM sub-packages — likely a dev/prod or version fork. Canopy needs only one canonical AT fixture set.

  • FFM_SPLIT is a documented partner toggle: 'Y' calls the EMPI Search Client service and routes the application to SUCCESS or IES; 'N' sends all to IES. Mock must model both branches.

  • Only endpoint-resolution mechanism recorded; no URLs extracted. The FFM stub is the one place in BATCH/IN with true XSD-typed payloads rather than flat files.

  • 1,030 accountTransfer hits. This is the Medicaid↔Marketplace account transfer. The hix NIEM domain also explains most of the \bHUB\b marker hits.

  • GAR reuses the FFM WSDL accessor name (getFFMWsdl) — the two account-transfer partners share the contract and differ only by configured endpoint.

  • Response codes enumerated in ffm/util/FFMResponseCodesEnum.java — useful as the mock’s response vocabulary.

GAMMIS / MMIS (Medicaid claims & enrollment)

Direction Transport Format Cadence Evidence

outbound request queues (send-and-wait pattern via FwMessageDAO)

JMS queues (framework MQ)

FwXMLMessage XML envelope; replies returned as a Collection from IMessage.sendWait

real-time / on-demand (synchronous request-reply)

worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:23 (INDRClientDetailsMsgVO="INClientDetailsQ", INDRTwcClientInfoMsgVO="INTWCClientInfoQ", INDREdgHistoryMsgVO="INEdgHistoryQ", INDRMedicaidInfoMsgVO="INMedicaidInfoQ", INDRTwcEdgInfoMsgVO="INTWCEdgeInfoQ"). Service/operation routing: worker-portal/IEWebApp/WebContent/XML/config/services.xml:8-17 and :30-39. Send-and-wait impl: worker-portal/FW/ejbModule/gov/state/nextgen/framework/dao/custom/FwMessageDAO.java:45,:72,:99 (messaging.sendWait(queueId, null, entities)); base BO worker-portal/Common/src/gov/state/nextgen/common/bo/INDRAbstractBO.java:187,:218,:350.

bidirectional

batch file via webMethods ActiveTransfer MFT; SQL*Loader into IN_NEW_BORN_STG and others

proprietary fixed-width flat files — NOT X12. See notes.

daily outbound (add/change/cancel, care eligibility, Medicaid denial); daily inbound Medicaid ID extract; weekly inbound copay; monthly TPL carrier extract; ad-hoc IN-GAMMISACC-ADH

MFT events IES_GAMMIS_OUTBOUND_DAILY_ADDCHANGECANCEL_FILE, IES_GAMMIS_OUTBOUND_DAILY_CARE_ELIGIBILITY_FILE, IES_GAMMIS_OUTBOUND_DAILY_MEDICAID_DENIAL_FILE in worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1, and GAMMIS_IES_INBOUND_DAILY_MEDICAID_ID_EXTRACT_FILE / GAMMIS_IES_INBOUND_WEEKLY_COPAY_FILE in Active_Events_23SEP2015_CR01 and Events_Inbound; batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gammis/ (265 java files — the single largest interface package); layouts worker-portal/BATCH/IN/sql-loader-control/InRcvGammisNewbornCtl.ctl (IN_NEW_BORN_STG, POSITION (331:340)), InRcvGammisCopayCtl.ctl, InGammisPckCopayRcvCtl.ctl; record class …​/in/batch/gammis/util/GammisCopayRcvRecord.java:15

outbound

batch file

fixed-width; includes an MMIS-specific race-code mapping

not separately discernible — folded into the GAMMIS job set

worker-portal/Common/src/gov/state/nextgen/common/util/INMmisUtility.java:68 ("This class is utility for MMIS related jobs"), :328-329 (Medicaid closure on death propagated to the MMIS file), :345 (MMIS race-code mapping)

bidirectional

SOAP via webMethods ESB (participation verification) + a large batch file family + Silverpop campaign notifications

WSDL+XSD provider path IES_GAMMIS.wsProvider.verifyGAMMISParticipation_WSD/…​; 16 BeanIO fixed-length mappings incl. gammisacc-snd-dly (12 records / 647 fields / 1013-char), gammis-client-snd-mly (3/19/4141), gammis-recon-snd-qly (3/93/953), gammis-denial-snd-dly (3/51/556), gammis-nhp-rcv-mly (3/43/400), gammis-newborn-rcv-dly (3/29/340), gammis-tpl-rcv-mly, gammis-ltc-snd-dly, gammiscopay-rcv-wly, gammisid-rcv-dly

real-time SOAP; daily (IN-SNDCMO-DLY, IN-RCNBI-DLY, IN-RCVGD-DLY), weekly/monthly copay (IN-RCCPY-WLY/-MLY, IN-PCKCOPAY-MLY), monthly (IN-RCNHP-MLY, IN-SNINDV-MLY), quarterly recon, ad-hoc (IN-GAMMISACC-ADH)

worker-portal/IEApp_Properties/Local/Application.properties:565-570 (GAMMIS_PARTICIPATION_SERVICE_URL, _NAME_SPACE, _SERVICE_NAME, GAMMIS_TIMER_SWITCH, GAMMIS_XML_SWITCH, GAMMIS_LOG_SWITCH); worker-portal/IEApp_Properties/local_batch/Application.properties:166-178 (CAMPAIGN_ID_GAMMIS_LTC, _OTHER, _ACC, _PTH, _PTH_QA_INC, GAMMIS_EMAIL_RECEIPIENT); worker-portal/BATCH/IN/src/resource-mapping/gammis*.xml (16 files); worker-portal/BATCH/IN/sql-loader-control/InRcvGammisCopayCtl.ctl, InRcvGammisNewbornCtl.ctl, InGammisPckCopayRcvCtl.ctl

bidirectional

batch file over SFTP via MFT

flat data file (fixed-width)

daily (eligibility, add/change/cancel, denial, third-party resource), weekly (copay), quarterly (recon)

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:1631 (IES_GAMMIS_OUTBOUND_DAILY_CARE_ELIGIBILITY_FILE), :6069 (…ADDCHANGECANCEL_FILE), :6195 (…MEDICAID_DENIAL_FILE); Active_Events_23SEP2015_CR01:1 (GAMMIS_IES_INBOUND_DAILY_MEDICAID_ID_EXTRACT_FILE); Events_Inbound:388 (GAMMIS_IES_INBOUND_WEEKLY_COPAY_FILE); '[secret-bearing path withheld]':1940, :3493, :5817, :6205 (IES_GAMMIS_OUTBOUND_DAILY_TP_RESOURCE_FILE), :7563 (IES_GAMMIS_OUTBOUND_QUARTERLY_RECON_FILE)

outbound (plus weekly copay and daily Medicaid-ID inbound)

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file; layouts not in this subsurface

daily (add/change/cancel, care eligibility, medicaid denial, third-party resource, LTC), weekly (copay inbound), quarterly (reconciliation), daily (Medicaid ID extract inbound)

worker-portal/IN/webMethods/[secret-bearing path withheld] → IES_GAMMIS_OUTBOUND_DAILY_{ADDCHANGECANCEL,CARE_ELIGIBILITY,MEDICAID_DENIAL,TP_RESOURCE}_FILE, IES_GAMMIS_OUTBOUND_QUARTERLY_RECON_FILE (tokens InSndDlyMaToGAMMISDat:1965, InSndDlyDenialToGAMMISDat:5842, InSndDlyTPRToGAMMISDat:6230, InSndDlyLTCToGAMMISDat:3518, InSndQlyReconToGAMMISDat:7588); inbound GAMMIS_IES_INBOUND_WEEKLY_COPAY_FILE (InRcvCpyWlyDat) in worker-portal/IN/webMethods/Events_Inbound and GAMMIS_IES_INBOUND_DAILY_MEDICAID_ID_EXTRACT_FILE in Active_Events_23SEP2015_CR01

outbound

SOAP over GTA ESB :6410, IS package IES_GAMMIS, service wsProvider.verifyGAMMISParticipation_WSD (Axis2 stub)

WSDL+XSD

real-time participation verification

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/gammis/IES_GAMMISWsProviderVerifyGAMMISParticipation_WSDStub.java; common/src/gov/state/nextgen/in/bo/{GammisPrtBO,GammisPrtBOUtil}.java; ejbModule/…​/in/INGMRGAMMISPRTSessionEJBBean.java; ejbModule/…​/in/{GetMmisProviders,GetMmisProvidersResponse,INWSMmisProviders,ArrayOfINWSMmisProviders,INWSMmisProvidersSummaryResult}.java

bidirectional

batch file + SQL*Loader stage; several flows driven by Oracle stored procedures

fixed-width across ~14 BeanIO mappings (gammis-snd-dly, gammis-rcv, gammisid-rcv-dly, gammis-newborn-rcv-dly, gammis-nhp-rcv-mly, gammiscopay-rcv-wly, gammis-client-snd-mly, gammis-denial-snd-dly, gammis-ltc-snd-dly, gammis-recon-snd-qly, gammis-tpl-rcv-mly, gammis-tpl-send-dly, gammisacc-snd-dly, gammis-pth-qa-mly)

daily, weekly (copay), monthly (client/newborn/NHP/recon), quarterly (recon), ADH (account ad-hoc)

inbound jobs …​/batch-jobs/{IN-RCVGD-DLY,IN-RCNBI-DLY,IN-RCNHP-MLY,IN-RCCPY-WLY,IN-RCCPY-MLY,IN-RCTPR-DLY,IN-PCKCOPAY-MLY,IN-PTHQAINC-MLY,IN-GAMMISACC-ADH,IN-OSNDEG-DLY}.xml; outbound jobs {IN-SNDCMO-DLY,IN-SNDEG-DLY,IN-SNDNL-DLY,IN-SNINDV-MLY,IN-SNLTC-DLY,IN-SNPHR-MLY,IN-SNPRC-MLY,IN-SNPTH-MLY,IN-SNRCN-MLY,IN-SNTPR-DLY}.xml; loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvGammisCopayCtl.ctl → IE_APP_ONLINE.IN_RCV_COPAY_STG, InRcvGammisNewbornCtl.ctl → IN_NEW_BORN_STG, InGammisPckCopayRcvCtl.ctl → IE_APP_ONLINE.IN_RCV_PCK_COPAY_STG}; procs worker-portal/BATCH/IN/sql/gammis_recon_proc.sql (904 lines, gammis_recon_prc) and gammis_pck_cert_mly.sql (249 lines, ie_app_online.gammis_pck_cert_mly)

outbound

batch file (BeanIO fixedlength, header/detail/trailer; mapping resources loaded programmatically in each writer), file renamed then email notification

fixed-width, per-stream: ACC add 953B/85 fields, ACC change 1013B/154 fields, ACC cancel 45B/9; client monthly 4141B/13 (with 145B header+trailer); denial 556B/48; LTC add 158B/25 and change 172B/39; recon 953B/87; PTH-QA 80B/12; P4HB 634B/47; PCK 920B/64; PTH 903B/61; TPL send add 47 fields / change 90 fields; simple case-number stream 11B/2. Headers are recType+recCd+hdrDt (13B), trailers recType+recCd+recCnt (15B)

daily (ACC/denial/LTC/TPL/eligibility sends: IN-SNDEG-DLY, IN-SNDNL-DLY, IN-SNLTC-DLY, IN-SNTPR-DLY, IN-SNDCMO-DLY), monthly (IN-SNPTH-MLY, IN-SNPHR-MLY, IN-SNRCN-MLY, IN-SNPRC-MLY, IN-SNINDV-MLY, IN-PTHQAINC-MLY, IN-PCKCOPAY-MLY), quarterly recon, ad-hoc (IN-GAMMISACC-ADH)

worker-portal/BATCH/IN/src/resource-mapping/gammisacc-snd-dly-mapping.xml (698 lines; records GammisAddSndRecord, GammisChangeSndRecord, GammisCancelSndRecord, GammisP4hb*, GammisPCKSndRecord, GammiaddorchangePTHSndRecord); gammis-client-snd-mly-mapping.xml; gammis-denial-snd-dly-mapping.xml; gammis-ltc-send-dly-mapping.xml; gammis-ltc-snd-dly-mapping.xml; gammis-recon-snd-qly-mapping.xml; gammis-pth-qa-mly-mapping.xml; gammis-tpl-send-dly-mapping.xml; gammis-snd-dly-mapping.xml; writer bindings e.g. worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gammis/chunk/writer/GammisACCSendWriter.java:71, GammisACCSndPostWriter.java:73, GammisClientSndPostWriter.java:49, GammisRcnSndPostWriter.java:71, GammisTPLSendWriter.java:81; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNDEG-DLY.xml:180,186 (GammisRenameFileBatchlet, GammisEmailNotificationBatchlet)

inbound

batch file (BeanIO fixedlength; copay feed additionally SQL*Loader-staged)

fixed-width with 13B header / 15B trailer: CMO 394B/16 fields (caseNumber, gammisMedicaidId, recordStatus, addressType, names, authorized-rep names, address); newborn 340B/23 (mother + child identity, medicaid ids, dob); nursing-home provider (NHP) 400B/39 (providerId, name, business name, address, phone, provider type); copay 104B/14 (ssn, medicaidID, peachcareID, names, dob, gender, effDt, endDt, copayExclusionInd) with a 103B/13 staging variant; GAMMIS ID 40B/5 (clientID, gammisID, source); TPL receive with header/trailer

daily (IN-RCVCMO-DLY CMO, IN-RCNBI-DLY newborn, IN-RCVGD-DLY GAMMIS id), weekly + monthly copay (IN-RCCPY-WLY / IN-RCCPY-MLY, IN-PCKCOPAY-MLY), monthly (IN-RCNHP-MLY nursing home providers, IN-RCTPR-DLY/TPL monthly)

worker-portal/BATCH/IN/src/resource-mapping/gammis-rcv-mapping.xml (GammisCmoRcvRecord 394B); gammis-newborn-rcv-dly-mapping.xml; gammis-nhp-rcv-mly-mapping.xml; gammiscopay-rcv-wly-mapping.xml (two streams: GammisCopayRcvRecords + GammisCopayRcvStgRecords); gammisid-rcv-dly-mapping.xml; gammis-tpl-rcv-mly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvGammisCopayCtl.ctl, InRcvGammisNewbornCtl.ctl, InGammisPckCopayRcvCtl.ctl; batchlet bindings worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gammis/chunk/batchlet/GammisNHPRcvBatchlet.java:42, GammisTPLRcvBatchlet.java:43

inbound

batch file; also SQL*Loader staging path

fixed-width with HDR header (headerByteCd 'HDR' + hdrDt) / 'TPL'+record code '05' detail (MITA-MMIS interface record) / trailer; 51 fields

daily (IN-RCVPCKTPL-DLY)

worker-portal/BATCH/IN/src/resource-mapping/pck-tpl-rcv-dly-mapping.xml:4-8 (PckTplRcvRecordStream + PckTplHeader), :12-27 (detail: submitterIdentifier literal 'TPL', recordCd '05', clientId 10, planId default 'PEACH', carrierNum, policy dates/number, group, premium, holder name), :62 (trailer); worker-portal/BATCH/IN/sql-loader-control/InRcvPckTplCtl.ctl; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/pcktpl/

inbound

batch file; SQL*Loader staging path; inbound file may be PGP-decrypted first

fixed-width HDR / 'TPL'+'05' detail (field mitaMmisIFACERECCD) / trailer; 51 fields

daily (IN-RCVPTHTPL-DLY); related monthly Pathways QA job IN-PTHQAINC-MLY and IN-SNPTH-MLY send

worker-portal/BATCH/IN/src/resource-mapping/pth-tpl-rcv-dly-mapping.xml:4-20 (PthTplRcvRecordStream, PthTplHeader literal 'HDR', detail tplCd 'TPL', mitaMmisIFACERECCD '05', planId default 'PHIPP'), :65 (trailer); worker-portal/BATCH/IN/sql-loader-control/InRcvPthTplCtl.ctl; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/util/PathwaysSecurityBatchlet.java:27-43,104-109 (BouncyCastle OpenPGP decrypt of the inbound Pathways file); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/util/PTHBatchFileArchiveBatchlet.java

outbound (file drop; directory-to-directory move)

batch file; shared framework batchlet moves a GAMMIS directory and an EBTAS directory in the same step

directory move — layout not defined in my surface (paths injected as gammisFromPath/gammisToPath job properties)

not discernible from my surface (batchlet is framework-level; invoking job lives outside AL/BI/BV/CaseMerge/CM/CO/CV/CV_INFORM/DC/ED/FW batch-jobs)

worker-portal/BATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/GammisEbtasMoveBatchlet.java:19-57 (fields gammisFromPath:27, gammisToPath:31, ebtasFromPath:35, ebtasToPath:39; moveDirectory calls at :54-55). FW/src/gov/state/nextgen/framework/batch/enums/NGBatchConfiguration.java:39 (GAMMIS_EMAIL_RECEIPIENT("email.gammis.receipient")).

inbound/outbound file drop (directory-to-directory move within the batch file gateway)

batch file (filesystem directory move; upstream/downstream leg is SFTP via the shared SFTP batchlets)

opaque file set moved wholesale (FileUtils.copyDirectory + cleanDirectory); layout not defined in this subtree

batch step, invoked per-job; dedicated failure email recipient configured

customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/GammisEbtasMoveBatchlet.java:27-39 (gammisFromPath, gammisToPath), :49-55, :70-77 (moveDirectory); recipient config key customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/enums/NGBatchConfiguration.java:38 ("email.gammis.receipient")

Mock-relevant facts
  • HIGHEST-VOLUME BIDIRECTIONAL BATCH PARTNER (10 distinct actions). Notable: the inbound MEDICAID_ID_EXTRACT is how the MMIS-assigned member ID gets back into IES — i.e. IES sends an eligibility add and later receives the ID in a bulk extract, NOT in a per-transaction response. A mock must therefore support 'ID assignment arrives in a later unrelated file', which is the classic source of eligibility/enrollment race conditions. No ack, no correlation id, no retry.

  • Largest package on this surface (265 files). Inventoried at mapping/stream level only — per-field extraction of the ACC 154-field change record was not attempted. There are two near-duplicate LTC mappings (gammis-ltc-snd vs gammis-ltc-send: legacy* vs non-legacy id fields) — a real fork to resolve before mocking. gammis-tpl-send-dly-mapping.xml records omit position/length attrs in the add/change records (computed elsewhere).

  • 25,137 hits — BY FAR the highest-frequency marker (20,336 in BATCH alone). IMPORTANT NEGATIVE FINDING: no X12 anywhere in either repo — no ISA*/GS* segments, no 834/270/271/999 transaction handling. Georgia Gateway↔GAMMIS is proprietary fixed-width, so canopy mocks should NOT assume X12 834 enrollment. Assigned markers X12, 834, 270, 271, 999 all resolve to ZERO real EDI usage.

  • 140 \bMMIS\b hits vs 25,137 for GAMMIS. The bare MMIS marker is largely legacy/generic naming for the same GAMMIS interface — do not model it as a separate partner. No DXC, HP ES, Conduent or XEROX-as-MMIS-operator references were found; the operator name does not appear in the source (see the DXC/HP ES finding).

  • Related third-party-liability inbound feeds live in sibling packages outside this alphabetical slice but share the GAMMIS envelope: pck-tpl-rcv-dly-mapping.xml (PckTplRcvRecord 318B/47 fields, daily IN-RCVPCKTPL-DLY) and pth-tpl-rcv-dly-mapping.xml (PthTplRcvRecord 318B/47, MITA-named fields, daily IN-RCVPTHTPL-DLY).

  • Weakest-evidence finding on my surface — I found the transport batchlet and a config key but not the payload layout or a scheduling job within my assigned directories. Worth a targeted follow-up in the IN subtree or the deployment config.

  • All five VO classes are ABSENT from the tree — pure dead config. 'TWC' = Texas Workforce Commission, confirming Texas TIERS heritage; not a Georgia partner. Do not mock these for canopy without confirmation.

  • Largest single partner family in the surface (~20 jobs). Uses the shared decision/common packages, so several jobs branch on program (Medicaid/PeachCare/Pathways) before writing.

  • Two concerns share the GAMMIS name here: participation verification (SOAP) and MMIS provider lookup (exposed through the portal’s own INWS* web-service value objects).

  • The LTC (long-term care) daily job has a filename token but no matching scheduled-action name in the exports I read — possible orphan or renamed job.

  • PGP decryption is done in-process with BouncyCastle; the private-key/passphrase location is a config lookup (no literals in the batchlet).

  • Structurally identical twin of the pthtpl (Pathways/PHIPP) feed — same header/trailer shape, differing planId default.

  • Same batchlet handles GAMMIS and EBTAS as a pair, suggesting they are two legs of the same nightly interface window.

  • Largest single partner surface in the batch tree by field count.

Experian — identity / credit / QAS address

Direction Transport Format Cadence Evidence

bidirectional

SOAP (real-time) via webMethods providers GAIES_Experian.wsProvider.idScreeningKIQ and GAIES_Experian.wsProvider.addressValidation

WSDL+XSD — service IDProofing, operation ExperianValidation; request/response schemas NCPreciseIDRequestV50.xsd / NCPreciseIDResponseV50.xsd; separate proweb.wsdl for address validation

real-time (applicant identity proofing at account creation)

customer-portal/bridgesClient/META-INF/IDProofing/IDProofing.wsdl:21,38 (operation ExperianValidation, service IDProofing); customer-portal/bridgesClient/META-INF/IDProofing/NCPreciseIDRequestV50.xsd and NCPreciseIDResponseV50.xsd; customer-portal/bridgesClient/META-INF/IDProofing/GAIES_Experian_wsProvider_idScreeningKIQ_Port.wsdl; address validation customer-portal/bridgesClient/META-INF/AddressValidation/proweb.wsdl and META-INF/wsdl/GAIES_Experian.wsProvider.addressValidation.wsdl; client customer-portal/bridgesClient/gov/state/nextgen/business/services/experian/client/IDProofingClient.java

outbound

SOAP

WSDL at /proweb.wsdl

real-time

worker-portal/IEApp_Properties/Local/Application.properties:197-198 (comment '# Address Validation', ADDRESS_VALIDATION_SERVICE_URL)

outbound

SOAP via webMethods GAIES_Experian.wsProvider:idScreeningKIQ

WSDL + XSD. Operation idScreeningKIQ. Payload = Experian NetConnect V5.0: request root NetConnectRequest {EAI, DBHost, ReferenceId, Request→Products→PreciseIDServer}; identity block PrimaryApplicant {Name(Surname/First/Middle/Gen), SSN, DOB/YOB/Age, MothersMaidenName, EmailAddress, CurrentAddress{Street,City,State,Zip}, PreviousAddress, DriverLicense{State,Number}, Phone}; subscriber block {Subscriber, Preamble, OpInitials, SubCode}

real-time, per applicant registration/case-link attempt

customer-portal/bridgesClient/META-INF/IDProofing/GAIES_Experian_wsProvider_idScreeningKIQ_Port.wsdl:2 (targetNamespace), :77-78 (portType idScreeningKIQ_PortType), :97 (service). Second, simpler internal facade: META-INF/IDProofing/IDProofing.wsdl:20-21 (portType IDProofing, operation ExperianValidation), :38. Schemas: META-INF/IDProofing/NCPreciseIDRequestV50.xsd (1927 lines; elements at :6, :50, :109-139, :229, :236, :270, :308) and NCPreciseIDResponseV50.xsd (6840 lines). Vendor behaviour notes: META-INF/IDProofing/AdditionalNotes.txt (Additional Addresses, Early Warning Services Identity Chek, Customer Management scoring). Client: bridgesClient/gov/state/nextgen/business/services/experian/client/IDProofingClient.java:64 (class), :70 (ctor takes endPoint), :82 performInitialInquiry, :185 performFinalInquiry. Generated stub: bridgesClient/gov/state/nextgen/business/services/webmethods/experian/GAIES_ExperianWsProviderIdScreeningKIQStub.java. JAXB entities: bridgesClient/com/experian/netconnect/request/entities/ and com/experian/netconnect/response/entities/

outbound

SOAP via webMethods GAIES_Experian.wsProvider:addressValidation; the raw QAS WSDL is also vendored

WSDL + XSD, QAS namespace http://www.qas.com/web-2013-12. Service ProWeb, portType QAPortType, 15 operations: DoSearch, DoBulkSearch, DoRefine, DoGetAddress, DoGetData, DoGetDataMapDetail, DoGetLicenseInfo, DoGetDataHashCode, DoGetDPVStatus, DoUnlockDPV, DoGetSystemInfo, DoGetExampleAddresses, DoGetLayouts, DoGetPromptSet, DoCanSearch (ESB mirror uses lowerCamel: doSearch, doRefine, …)

real-time, per address entry

Raw vendor WSDL: customer-portal/bridgesClient/META-INF/AddressValidation/proweb.wsdl:2 (definitions/targetNamespace), :1067-1155 (QAPortType operations), :1358 (service ProWeb), :1360 (soap:address). ESB-wrapped WSDL: bridgesClient/META-INF/wsdl/GAIES_Experian.wsProvider.addressValidation.wsdl:1 (targetNamespace [vendor host withheld]…), :1364-1455 (portType addressValidation_PortType), :1594 (service), :1596. Config: bridgesClient/addressvalidation.properties (wsaddressvalidation / nameSpace / serviceName — no credentials present). Client: bridgesClient/gov/state/address/validation/service/client/AddressValidation.java. Env key: customer-portal/framework/properties/config/production_env.properties:181 (ADDRESS_VALIDATION)

outbound

raw HTTPS POST via pub.client:http with a base64-encoded body

XML, base64-encoded before transmission

real-time, applicant-driven (identity proofing during application)

worker-portal/IN/webMethods/GAIES_Experian12_09062015.zip → ns/GAIES_Experian/services/idScreeningKIQ/flow.xml: pub.string:stringToBytes at line 906 → pub.string:base64Encode at 1235 → pub.client:http at 1937 with COPY /encodedXmlData → /data/string; response gate BRANCH SWITCH="/fault/status" with $default arm at 3054 and 200 arm at 3521. Canonical header: interfaceCode=Experian, direction=Outbound

outbound

SOAP

WSDL+XSD; doc/IDScreening_Request + doc/IDScreening_Response

real-time (at applicant account creation / identity proofing)

worker-portal/IN/webMethods/GAIES_Experian12_09062015.zip → ns/GAIES_Experian/services/idScreeningKIQ, ns/GAIES_Experian/wsProvider/idScreeningKIQ, ns/GAIES_Experian/doc/{IDScreening_Request,IDScreening_Response}, ns/GAIES_Experian/util/multiConcat

outbound

SOAP via webMethods IS package GAIES_Experian on :9445, service wsProvider.resetPassword (Axis2 stub)

WSDL+XSD

real-time

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/experian/resetPassword/GAIES_ExperianWsProviderResetPasswordStub.java; ejbModule/…​/in/INEPSExperianSummaryEJBBean.java; webMethods/GAIES_Experian12{,_09062015}.zip

outbound

SOAP / webMethods-fronted web service (WSDL URL read from a properties file)

WSDL

monthly

job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RSTPSWD-MLY.xml (package …in.batch.experian); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/experian/bo/impl/ResetExperianPswdBoImpl.java:29 + :93 ('Invokes the Experian Password reset Service. WebMethod'), :102 (wsdl = FwPropertyLoader.getPropertyOf(…​)), :106 (logs the WSDL URL), :109

outbound

SOAP web service; WSDL endpoint read from a properties file at runtime

WSDL-generated client call (password reset operation)

monthly (IN-RSTPSWD-MLY)

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/experian/bo/impl/ResetExperianPswdBoImpl.java:102-109 (WSDL URL via FwPropertyLoader; note the URL is logged at ERROR level); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RSTPSWD-MLY.xml:24 (ResetExperianPasswordBatchlet)

outbound

web service, URL from Application.properties key EXPERIAN_PASSWORD_RESET_SERVICE

not resolvable in this subtree (constant declared here; caller lives outside CPBATCH)

real-time (self-service password reset)

customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/constants/NGBatchConstants.java:170-171 (comment cites SR-62759, constant EXPERIAN_PASSWORD_RESET_SERVICE)

outbound

SOAP (JAX-WS, WSDL URL from env config)

WSDL+XSD; QASearch request (country, search string, EngineType{promptSet=DEFAULT, timeout=2000, value=VERIFICATION, flatten=true}, layout="Database layout", formattedAddressInPicklist=true) → QASearchResult picklist of QAAddressType/AddressLineType with VerifyLevelType + Reasons14/Fault14

real-time (synchronous, 2000 ms engine timeout), invoked per authorized-representative address entry

customer-portal/commonApp/gov/state/nextgen/access/business/rules/AuthRepAddressValidation.java:9-21 (imports gov.state.address.validation.service.ProWeb / QAPortType / QASearch / QASearchResult / EngineEnumType / PromptSetType / VerifyLevelType); :192-231 doSearch(); :44 wsdlUrl field, :48 DATABASE_LAYOUT, :52 USA

outbound

HTTP web-service client (IDProofingClient, endpoint from env property)

IDProofingRequest → IDProofingResponse carrying a ChallengeQuestion set; two-phase (populateQuestions then performFinalInquiry)

real-time, two round-trips per applicant during account/identity proofing

customer-portal/commonApp/gov/state/nextgen/access/business/rules/ABIdentityProofingtBO.java:33 (import gov.state.nextgen.business.services.experian.client.IDProofingClient); :65-73 populateQuestions (endpoint key AppConstants.IDENTITY_PROOFING); :89-97 finalInquiry; :157-159 request assembly incl. language; :257 session-held request; :315 response handling. Request/response types: commonApp/gov/state/nextgen/access/business/customEntities/webservice/{IDProofingRequest,IDProofingResponse,ChallengeQuestion}.java. Results table: CP_APP_IN_ID_PROOFING_RESULT (entities in commonApp/…​/business/entities/)

Mock-relevant facts
  • BODY IS BASE64-WRAPPED XML — a mock must base64-DECODE the request body before matching on it, unlike every other HTTP partner here. KIQ is inherently multi-turn at the business level (issue questions, then score answers) but each turn is an independent stateless POST from webMethods' perspective; the flow holds no session. $default (non-200) is handled before the 200 case in the branch, i.e. failure is the fall-through — a mock returning anything other than 200 exercises the same single error arm. No retry.

  • No credentials extracted. Flagged as an interface fact only: canopy’s Experian mock needs a credential-rotation operation, and the legacy code logs the endpoint URL to the error log (an observation worth carrying into canopy’s own logging rules). The 6-file package contains no record layouts — this is a pure control-plane interface.

  • Smallest package on the surface — one flow, one provider, no wsConsumer artifact in this export (the outbound call is likely made from the flow directly). KIQ = knowledge-based identity questions; mock must return a question set and accept an answer set.

  • Vendor package is re-namespaced to gov.state.address.validation.service; ProWeb/QAPortType/QASearch/PromptSetType are the Experian Data Quality Pro Web contract names. Mock: deterministic picklist + verify-level per canned address.

  • CUSTOMER-PORTAL-FLAVOURED: knowledge-based identity proofing exists for citizen self-service accounts, not for workers. Constant only — no invocation in CPBATCH. Follow up in the customer-portal web/EJB tier, not the batch tier.

  • SECURITY OBSERVATION (no secret extracted): line 106 logs the resolved WSDL URL at ERROR level inside a password-reset flow. Recorded as a path/line reference only; canopy should not replicate this logging pattern.

  • Customer-portal-side (applicant identity proofing), plus an experian batch package in worker-portal/BATCH/IN. KIQ = knowledge-in-question challenge flow — a mock needs deterministic question/answer sets.

  • Consumers are outside my four modules (commonApp/ABRegistrationBO.java, commonApp/ABAuthorizedRepresentativeBO.java, rmcEJB/RMCHouseHoldInfoEJBBean.java) but the client + contract live in bridgesClient.

  • Two-phase protocol (initial inquiry → KIQ question set → final inquiry with answers). Subscriber/SubCode/OpInitials are subscriber-credential fields — schema only, no values in the tree.

  • Only the resetPassword operation is wired here; the identity-proofing quiz flow is presumably in the customer-portal repo (outside this surface).

  • Stateful across two calls (question set is stashed in HTTP session) — a canopy mock needs a session/correlation id, not a pure function.

  • Endpoint path /proweb.wsdl is the Experian QAS Pro Web signature; no explicit vendor-named key.

TPL / ESI (third-party liability insurers)

Direction Transport Format Cadence Evidence

outbound query, inbound result

SOAP web service

WSDL+XSD; targetNamespace insuranceCardSearch.tpl.services.business.ejb.nextgen.state.gov

real-time query

worker-portal/IN/ejbModule/META-INF/xsd/TplInsuranceCard.xsd:2 (targetNamespace), :3-11 (TplInsuranceCardRequest: caseNumber, medicaidId, clientId, uploadDate — all optional), :13-20 (TplInsuranceCardResponse: tplInsuranceCards 0..500), :23-27 (TplInsuranceCard: disDocMasterSeq, caseNumber, medicaidId, clientId, uploadDate)

bidirectional

batch file via webMethods ActiveTransfer MFT; SQL*Loader into IN_TPL_ESI_RCV_STG, IN_PCK_TPL_RCV_STG, IN_PTH_GAMMIS_TPL_RCV_STG; plus a SOAP insurance-card lookup

fixed-width for the carrier extracts; WSDL for TplInsuranceCardService

monthly carrier extract (TPL_IES_INBOUND_MONTHLY_TPL_CARRIER_EXTRACT_FILE); daily jobs IN-RCTPL-DLY, IN-SNTPL-DLY, IN-RCVPCKTPL-DLY, IN-RCVPTHTPL-DLY, IN-RCTPLERR-DLY, IN-RCVTPLERR-DLY, IN-SNERTPL-WLY

worker-portal/BATCH/IN/sql-loader-control/InRcvTplEsiCtl.ctl (IN_TPL_ESI_RCV_STG, POSITION (234:253)), InRcvPckTplCtl.ctl (IN_PCK_TPL_RCV_STG, POSITION (312:318)), InRcvPthTplCtl.ctl (IN_PTH_GAMMIS_TPL_RCV_STG, POSITION (21:30)), InRcvTplEsiErrorCtl.ctl, InRcvTplEsiErrorSendCtl.ctl; SOAP worker-portal/IN/ejbModule/META-INF/wsdl/TplInsuranceCardService.wsdl and META-INF/xsd/TplInsuranceCard.xsd; batch packages …​/in/batch/tpl/, …​/in/batch/ertpl/, …​/in/batch/pcktpl/, …​/in/batch/pthtpl/

bidirectional

batch file + SQL*Loader staging + a Gateway-hosted insurance-card search SOAP endpoint

BeanIO fixed-length tpl-esi-mapping.xml (2/54/515), tpl-esi-chipra-mapping.xml (1/40/616), tpl-esi-hipp-mapping.xml (1/40/616), estate-recovery-tpl-dly-mapping.xml (1/23/787), pck-tpl-rcv-dly-mapping.xml (3/51/318), pth-tpl-rcv-dly-mapping.xml (3/51/318), gammis-tpl-rcv-mly / gammis-tpl-send-dly; staging IN_TPL_ESI_RCV_STG, IN_TPL_ESI_ERROR, IN_TPL_ESI_ERROR_SEND_STG, IN_PCK_TPL_RCV_STG, IN_PTH_GAMMIS_TPL_RCV_STG

daily (IN-SNTPL-DLY, IN-RCTPL-DLY, IN-RCTPLERR-DLY, IN-RCVTPLERR-DLY, IN-SNCHIPRA-DLY, IN-SNHIPP-DLY, IN-RCVPCKTPL-DLY, IN-RCVPTHTPL-DLY); weekly (IN-SNERTPL-WLY)

worker-portal/BATCH/IN/src/resource-mapping/tpl-esi*.xml, estate-recovery-tpl-dly-mapping.xml, pck-tpl-rcv-dly-mapping.xml, pth-tpl-rcv-dly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvTplEsiCtl.ctl, InRcvTplEsiErrorCtl.ctl, InRcvTplEsiErrorSendCtl.ctl, InRcvPckTplCtl.ctl, InRcvPthTplCtl.ctl; worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:137-140 (TplInsuranceCardSearchService); worker-portal/IEApp_Properties/local_batch/Application.properties:172-173 (CAMPAIGN_ID_TPL, TPL_EMAIL_RECEIPIENT)

outbound

SOAP, direct service TplInsuranceCardSearchService at /cpsecure/IES/services/TplInsuranceCardSearchService?wsdl

WSDL + XSD. portType TplInsuranceCardSearchPortType, operation tplInsuranceCardSearch. Request TplInsuranceCardRequest{caseNumber, medicaidId, clientId, uploadDate, tplApplicationNum} → TplInsuranceCardResponse{responseCode, responseDesc, tplInsuranceCards:TplInsuranceCard[0..500]{disDocMasterSeq, caseNumber, medicaidId, clientId, uploadDate, tplApplicationNum}}

real-time

WSDL: customer-portal/bridgesClient/META-INF/TPLInsuranceCardSearch/TplInsuranceCardService.wsdl:2 (definitions), :5-34 (schema), :45-53 (portType/operation), :63-65 (service + soap:address). Call: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2700 (callTPLInsuranceCardSearchService). JAXB: bridgesClient/gov/state/nextgen/ejb/business/services/tpl/insurancecardsearch/. CONSUMER IN MY SURFACE: accessEJB/ejbModule/gov/state/nextgen/access/business/services/CPPServiceRequestEJBBean.java:4684. Key: sharedApp/…​/AppConstants.java:4537 = "TPL_INSCARD_SEARCH_WS"; endpoint framework/properties/config/production_env.properties:296

inbound (batch) + real-time inquiry

batch file over SFTP via MFT; plus SOAP provider for card search

flat data file; WSDL + XSD for the real-time op

monthly (batch extract); real-time for the inquiry

worker-portal/IN/webMethods/Active_Events_23SEP2015_CR01:139 (TPL_IES_INBOUND_MONTHLY_TPL_CARRIER_EXTRACT_FILE); real-time contract TplInsuranceCardService.wsdl (op tplInsuranceCardSearch) registered in worker-portal/IN/ejbModule/META-INF/jax-ws-catalog.xml

outbound

SOAP; JAX-WS TplInsuranceCardSearchService on :9106

WSDL+XSD (dedicated TplInsuranceCard.xsd)

real-time search

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/tpl/insuranceCardSearch/TplInsuranceCardSearchService.java:17; ejbModule/META-INF/wsdl/TplInsuranceCardService.wsdl; ejbModule/META-INF/xsd/TplInsuranceCard.xsd; common/src/gov/state/nextgen/in/bo/INTPLSearchBO.java; ejbModule/…​/in/INTPLSessionEJBBean.java

inbound

batch file + SQL*Loader stage; monthly certification via stored procedure

fixed-width; pck-tpl-rcv-dly-mapping.xml

daily (TPL), monthly (copay, certification)

jobs …​/batch-jobs/{IN-RCVPCKTPL-DLY,IN-PCKCERT-MLY,IN-PCKCOPAY-MLY}.xml; loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvPckTplCtl.ctl (60 lines) → IN_PCK_TPL_RCV_STG, InGammisPckCopayRcvCtl.ctl → IE_APP_ONLINE.IN_RCV_PCK_COPAY_STG}; proc worker-portal/BATCH/IN/sql/gammis_pck_cert_mly.sql

bidirectional

batch file + SQL*Loader stage

fixed-width; pth-tpl-rcv-dly-mapping.xml, gammis-pth-qa-mly-mapping.xml

daily (TPL, participation), monthly (QA income, PTH send)

jobs …​/batch-jobs/{IN-RCVPTHTPL-DLY,IN-PTHQAINC-MLY,IN-SNPTH-MLY}.xml; loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvPthTplCtl.ctl (78 lines) → IN_PTH_GAMMIS_TPL_RCV_STG, InRcvPathwaysParticipation.ctl → IN_GVRA_ENROLLMENT_STG}

bidirectional

batch file + SQL*Loader stage (with a dedicated error-return leg)

fixed-width; tpl-esi-mapping.xml, tpl-esi-hipp-mapping.xml, tpl-esi-chipra-mapping.xml, estate-recovery-tpl-dly-mapping.xml

daily; weekly for estate recovery

jobs …​/batch-jobs/{IN-RCTPL-DLY,IN-RCTPLERR-DLY,IN-RCVTPLERR-DLY,IN-SNTPL-DLY,IN-SNHIPP-DLY,IN-SNCHIPRA-DLY,IN-SNERTPL-WLY}.xml; loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvTplEsiCtl.ctl → IN_TPL_ESI_RCV_STG, InRcvTplEsiErrorCtl.ctl → IE_APP_ONLINE.IN_TPL_ESI_ERROR, InRcvTplEsiErrorSendCtl.ctl → IE_APP_ONLINE.IN_TPL_ESI_ERROR_SEND_STG}

outbound

batch file

fixed-width; estate-recovery-tpl-dly-mapping.xml

weekly

job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNERTPL-WLY.xml (package …in.batch.ertpl); mapping worker-portal/BATCH/IN/src/resource-mapping/estate-recovery-tpl-dly-mapping.xml format="fixedlength"

outbound

batch file (BeanIO fixedlength)

787B fixed, 23 fields: caseNum, edgNum, medicaidIndvId, memberGammisId, firstName, lastName, dobDt, ssn, resourceTypeCd, description, source, address block, vehicle block (make, model, modelYear), accountPolicyNum, assetValue, jointlyOwned, filler

weekly (IN-SNERTPL-WLY)

worker-portal/BATCH/IN/src/resource-mapping/estate-recovery-tpl-dly-mapping.xml (stream EderpSndRecordStream, record EderpSndRecord, 23 fields, reclen 787); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ertpl/util/EderpSndRecord.java; …​/ertpl/bo/impl/ResourceType.java (resource type enumeration)

bidirectional

batch file, GPG-encrypted on send to the HMS recipient key (gpg CLI invoked via Runtime.exec with recipient id from config key HMS_USER_ID); inbound error files decrypted/loaded via SQL*Loader; e-mail notification batchlet on completion

fixed-width. ESI send (packageId 9, indvId 9, ssn 9, name, gender, dob, esiEmployee, esiEmployeeRelationshipCd, ceCode, mailing address block); HIPP send (adds medicaidId 12 + medicaid start/end dates); CHIPRA send (40 fields); ESI error-response record inbound

daily (IN-SNTPL-DLY ESI send, IN-SNHIPP-DLY, IN-SNCHIPRA-DLY, IN-RCTPL-DLY, IN-RCTPLERR-DLY, IN-RCVTPLERR-DLY)

worker-portal/BATCH/IN/src/resource-mapping/tpl-esi-mapping.xml:6-8 (TplEsiSndRecord fixedlength), :46-47 (TplEsiRcvErrorRecord); tpl-esi-hipp-mapping.xml:6-8; tpl-esi-chipra-mapping.xml:6-8; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/tpl/batchlet/TplEsiRenameFileNameBachlet.java:77-88 (recipient id from property 'HMS_USER_ID'; 'gpg --trust-model always -r <id> --output <file>.gpg --encrypt <file>' via Runtime.exec) and TplEsiRenameErrorFileNameBachlet.java:79-86 (same for the error file); worker-portal/BATCH/IN/sql-loader-control/InRcvTplEsiCtl.ctl:3 (IN_TPL_ESI_RCV_STG), InRcvTplEsiErrorCtl.ctl:4 (IE_APP_ONLINE.IN_TPL_ESI_ERROR), InRcvTplEsiErrorSendCtl.ctl; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/tpl/util/TplEsiEmailNotificationBatchlet.java

Mock-relevant facts
  • DUAL-MODE PARTNER: bulk monthly carrier extract for population load, plus a synchronous per-person card search. Mocks need both a file fixture and a request/reply stub, and the two can disagree (batch is a month stale) — that skew is realistic behavior worth reproducing.

  • disDocMasterSeq links to the DIS (document imaging) store — this interface returns pointers, not blobs. All four request criteria are optional, so an unconstrained request is legal; a mock should model the 500-row cap.

  • Pathways work-requirement participation lands in the SAME staging table as GVRA enrollment (IN_GVRA_ENROLLMENT_STG) — a shared qualifying-activity model worth mirroring in canopy’s mock.

  • Only the GPG recipient KEY ID property name is in source — no key material. The '.gpg' suffix is the sole hard-coded filename fact on this whole surface.

  • chipra and hipp mappings are byte-identical in shape (1 record / 40 fields / 616 chars) — same layout, different program routing.

  • Three-legged pattern (send / receive / error-return) — mock should model the error-file round trip, not just the happy path.

  • resourceTypeCd vocabulary is enumerated in ertpl/bo/impl/ResourceType.java — take the mock’s value set from there.

  • Four parallel TPL variants (generic, ESI, PCK/P4HB, Pathways) each with its own staging table and layout.

  • disDocMasterSeq links the returned record back to a DIS-stored scanned insurance card image.

AVS (asset verification: Accuity/HMS IntegriMatch)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

outbound query, inbound response

request/response document → JAXB

ns http://www.example.org/InVTRSSchema (vehicle search), …​/VTRSCustomerSchema (customer search), …​/VTRSSingleVehicleResponse, …​/VTRSMultipleVehicleResponse, …​/VTRSMultipleCustomerResponse, …​/VTRSResponseWrapper

real-time query

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{VehicleRecordSearch,VehicleRecordSearchByCustomer,Parameters,CParameters,DPPAHeader,CDPPAHeader,VTRSResponseWrapper,VTRSSingleVehicleResponse,VTRSMultipleVehicleResponse,VTRSCustomerResponse,VTRSMultipleCustomerResponse,VTRSVehicleResponse,Vehicle,Owner,LienHolder,Decal,Designation,TitleHistory,TitleHistoryDesignation,VehicleCharacteristic,GVW,Fee,Detail,ReturnStatus}.java

outbound query, inbound response

request/response document → JAXB (SOAP-style; four operations multiplexed in one request/response pair)

ns http://www.example.org/OrionPropertyTaxSchema (the single largest namespace in the package: 178 element declarations)

real-time query, tax-year keyed

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{OrionPropertyTaxDocument,OrionPropertyTaxReq,OrionPropertyTaxRes,GetPropertyIds,GetPropertySummarys,GetAssessmentHistory,GetAllOwners,PropertyId,PropertySummary,Assessment,AllOwners}.java; namespace counts from ObjectFactory.java:34-2498

bidirectional

batch file; SQL*Loader into IN_AVS_FI_LOC_STG

fixed-width (bank/FI location records)

daily and monthly (IN-RCAVS-DLY, IN-RCAVS-MLY, IN-SNAVS-DLY); plus IN-SENDACCULNREQ-MLY

worker-portal/BATCH/IN/sql-loader-control/InRcAvsBankInfoCtl.ctl (INTO TABLE IN_AVS_FI_LOC_STG); vendor named at worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/chunk/writer/InSendAccuLnReqWriterInProcessor.java:41 ("Accuity Liquid resource asset verification"); batch packages …​/in/batch/avs/ and …​/in/batch/lnreq/; jobs IN-RCAVS-DLY.xml, IN-RCAVS-MLY.xml, IN-SNAVS-DLY.xml, IN-SNLNREQ-DLY.xml, IN-SENDACCULNREQ-MLY.xml; webMethods GAIES_AVS.zip (814 KB)

inbound

batch file + SQL*Loader staging

SQL*Loader into IN_AVS_FI_LOC_STG (financial-institution location); reader …​in.batch.avs.chunk.reader.AvsBankInfoReader

daily (IN-RCAVS-DLY) and monthly (IN-RCAVS-MLY, IN-SNAVS-DLY, RP-STRAVSRPT-MLY)

worker-portal/BATCH/IN/sql-loader-control/InRcAvsBankInfoCtl.ctl; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCAVS-MLY.xml, IN-RCAVS-DLY.xml, IN-SNAVS-DLY.xml; worker-portal/BATCH/RP/src/META-INF/batch-jobs/RP-STRAVSRPT-MLY.xml

bidirectional

SOAP over HTTPS via webMethods wsConsumer connectors

WSDL + XSD

real-time initiation; results returned on later calls; explicit worker-invoked re-request

worker-portal/IN/webMethods/GAIES_AVS.zip → ns/GAIES_AVS/services/initiateFIDMRequest/flow.xml — outer SEQUENCE EXIT-ON="SUCCESS" / TRY SEQUENCE EXIT-ON="FAILURE" → publishLog at 607 → wsConsumer connector GAIES_AVS.wsConsumer.FIDMService_.connectors:FIDMPortType_InitiateFIDMRequest at 1550 → response remap → LOOP IN-ARRAY="/fault/reasons" at 3513 → BRANCH SWITCH="/fault" at 4269 → CATCH SEQUENCE EXIT-ON="DONE" at 5122 with pub.flow:getLastError at 5127 → publishLog at 5847 → publishError at 6451 (DISABLED) → clearPipeline at 6690. Canonical header: interfaceCode=AVS, both Inbound and Outbound

bidirectional

SOAP (async request/re-request pattern)

WSDL+XSD; cmres/intgtypes/request namespaces (IntegrimatchResponseType, AddressType, CaseDetailType, MemberDetailType, NameType, DateRangeType, InstitutionDetailType)

real-time initiation; asynchronous response retrieval via ReRequest operations

worker-portal/IN/webMethods/GAIES_AVS.zip → ns/GAIES_AVS/services/{initiateFIDMRequest,cancelFIDMRequest,reRequestFIDM,directAccountHistory,reRequestDirectAccountHistory,FILookup,FILookupPing,geoLocator,reRequestGeoLocator,common_AssetDetails_Remap}, ns/GAIES_AVS/wsConsumer/directAccountHistoryService_/connectors/{DirectAccountHistoryPortType_DirectAccountHistory,DirectAccountHistoryPortType_ReRequestDirectAccountHistory}, ns/GAIES_AVS/docs/doc_*

bidirectional

NO client class in this surface — only generated JAXB request and response type trees in two sibling packages; the wire leg is carried by webMethods package GAIES_AVS

XSD-derived JAXB; request side AssetVerificationRequestType/RequestBundleType/DetectionRequestType/VerificationRequestType/DateRangeType/RequestorType/FinancialInstitutionType/PersonType/AccountDetailsType; response side AssetVerificationResponseType/ResponseType/AccountType/AccountBalanceType/FinancialInstitutionType

not discernible from this surface (AVS is conventionally batch request/response)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/avs/ (13 request-side classes); worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/res/avs/ (8 response-side classes); ejbModule/…​/in/INAVSSessionEJBBean.java; webMethods/GAIES_AVS.zip

bidirectional

batch file + SQL*Loader stage; a follow-on batchlet triggers EDBC on results

pipe-delimited loader for the FI location file

daily + monthly inbound; daily outbound

jobs …​/batch-jobs/{IN-RCAVS-DLY,IN-RCAVS-MLY,IN-SNAVS-DLY}.xml; loader worker-portal/BATCH/IN/sql-loader-control/InRcAvsBankInfoCtl.ctl (20 lines, fields terminated by '|') → IN_AVS_FI_LOC_STG; gov/state/nextgen/in/batch/avs/batchlet/TriggerEDBCBatchlet.java:54 (avsResBO.triggerEDBC(asOfDate, jobName))

bidirectional

batch file drop of JAXB-marshalled XML documents (request written to a file path, response read from a file path)

XML bound to generated JAXB classes AssetVerificationRequestType / AssetVerificationResponseType in package gov.state.nextgen.ejb.business.services.res.avs; output file name = <filePath>_yyyyMMdd + XML extension

daily send (IN-SNAVS-DLY), daily response pickup (IN-RCAVS-DLY)

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/avs/bo/impl/AvsSndBOImpl.java:801-805 (JAXBContext + Marshaller, marshal(assetVerificationRequestType, new File(path))), :809-826 (getFileName appends '_' + yyyyMMdd + INConstants.XML_FILE_EXTN); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/avs/bo/impl/AvsResBOImpl.java:81-84 (JAXBContext.newInstance("gov.state.nextgen.ejb.business.services.res.avs"), unmarshal to JAXBElement<AssetVerificationResponseType>); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNAVS-DLY.xml:44,76,87; IN-RCAVS-DLY.xml:49,60,84,94,140,150,175

inbound

batch file loaded by SQL*Loader (pipe-delimited, 1 header line skipped) into IN_AVS_FI_LOC_STG

delimited (fields terminated by '|'), columns INST_ID, INST_TITLE, INST_ADDR_LINE1, INST_ADDR_CITY, INST_ADDR_STATE_CD, INST_ADDR_ZIP5 (SUBSTR 1-5), …

monthly (IN-RCAVS-MLY)

worker-portal/BATCH/IN/sql-loader-control/InRcAvsBankInfoCtl.ctl:1-14; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCAVS-MLY.xml:13-14,41,78 (controlFilePath + AvsBankInfoProcessBatchlet); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/avs/util/AvsBAnkVO.java

inbound

Batch file — local/mounted directory scan (java.io.File.listFiles) on a job-parameter path

Binary report files ingested as BLOBs. File-naming contract: <REPORT_ID>_<…​><date>.<ext> where REPORT_ID is everything before the FIRST underscore and is matched against RP_MASTER_TEMPLATE (query findByReportIdfromFileName). If REPORT_ID contains "MLY", the 10 characters immediately before the final '.' are a yyyy-MM-dd date; if it contains "ALY", the 4 characters before the final '.' are a year. Extension/format (PDF vs Excel) is decided by the template’s FORMAT_PDF / FORMAT_EXCEL flags, not by the file extension.

RP-STRAVSRPT-MLY monthly; RP-STRPCSRPT-DLY daily; RP-STRQCSRPT-DLY daily

worker-portal/BATCH/RP/src/META-INF/batch-jobs/RP-STRAVSRPT-MLY.xml:2,11,35-44 (filePath job parameter; RpStorePCSBatchReader → RpStorePCSBatchProcessor → RpStorePCSReportWriter); identical wiring in RP-STRPCSRPT-DLY.xml and RP-STRQCSRPT-DLY.xml; worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/reader/RpStorePCSBatchReader.java:49-51,62,80; worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/bo/impl/RpBatchBOImpl.java:1168-1178 (getPCSFilesToStore — flat listFiles, no glob/extension filter), 1192-1254 (getRPQueueForFile — the naming contract above), 71 (SimpleDateFormat "yyyy-MM-dd")

Mock-relevant facts
  • DPPA header (11, on BOTH request flavours): tranNum/transNum, tranType/transType, reqFirstName, reqMiddleName, reqLastName, reqSuffix, reqOrgName, reqDriverLicense, reqLoginName, reqLoginDesc, reasonCode. reasonCode is the DPPA permissible-purpose code — a canopy mock MUST require it and reject requests without it, since that is the access control. Vehicle search Parameters (10): vin, titleNum, plateNum, boatNum, custmrNum, respId, accessLevel, allowMultipleDet, vehicleNum, freeSrchInd. Customer search CParameters (12): firstName, middleName, lastName, orgName, licenseNum, corpId, fein, allowMulDet, accessLevel, respId, freeSearchInd, includeVehicles. Response wrapper: {vtrsMultipleCustomerResponse | vtrsMultipleVehicleResponse | vtrsSingleVehicleResponse} + ReturnStatus{count, status, accountNumber}. VTRSSingleVehicleResponse (~57 scalars + 8 lists): vin/vin2, year, ncicCode/ncicMake/extendedModel/style, msrp, mgvw, gcw, shipWght, tonVal, engineSize, motorHomeClass, titleNum/titleSt/titleAppDt/titleApplDt/titleSaleDt/titleJur, sellingDlr, odoVal/odoInd, regStDt/regEndDt/regCounty/rpo/oneYrReg, vehRegUseType, vehRegDispType, isTempVeh, boat block (boatNumber, boatPropulsionType, hullMaterialType, boatUse, boatType), insuStop + lists detailList/gvwList/feeList/ownerList/lienHolderList/designationList/titleHistoryList/vechicleCharList. Owner and LienHolder share a 20-field shape (custNum, vehOwnrId, name/orgName, ownrCntrlType, residency1/2+resCity/State/Zip, mailing1/2+mailCity/St/Zip, priority, nsf) with LienHolder adding releaseDt + addDt. Money: Fee{feeId, vehOwnrId, feeDesc, feeAmnt}, msrp. Code tables: ncicCode, plateType, titleStatusType, vOwnerDispType, odometerIndicator, decalType, designationType, characteristicType, gvwClass, ownrCntrlType, fuelType, reasonCode.

  • Request is a union of 4 operations: getPropertyIds{countyId, ownerName, geocode, subdivisionName, assessmentCode}, getPropertySummarys{propertyId, taxYear}, getAllOwners{propertyId, taxYear}, getAssessmentHistory{propertyId, propertyType}. Response is the matching union: propertyId, propertySummary, allOwners, assessment. PropertySummary (~95 fields) — legal description (geoCode, assessmentCode, subSection, subBlock, subLot, subLotRange, subdivision, section, township, range, certificateOfSurvey, cosParcel, legalDescription), a fully-parsed situs address (situsAddressNumber/PreDirection/Street/RoadSuffix/PostDirection/City/State/ZipCode/UnitNumber/UnitType) plus an owner mailing address, and a valuation family (dwellingValue, mobileValue, commercialValue, obyFlatValue, totalImprovementValue, totalMarketAcres, totalMarketValue) with an agricultural sub-family of acres/value pairs (grazing, fallow, irrigated, continuousCrop, wildHay, farmSite, row, totalAg, totalNonQual, totalForest). Assessment (~37): taxYear, classCode, landValue, buildingValue, totalValue, valueBeforeReappraisal, phaseInValue, exemptValue, taxableMktValue, taxClass, taxablePct, taxableValue, acres, tifBaseVal/tifIncVal, proRateFactor, totalMills/totMills, taxAmount, specialMobileValue/Taxable, estPenalty, estimatedFlag, underThresholdFlag. AllOwners (~22): partyID, percentOwnership, primaryOwner, interestType, address1-3, country, postalCode, city, state, zip, fullName, nameType/nameTypeDescription, lastModified. Code tables: propertyType, classCode, taxClass, zoning, levyDistrict, category/subCategory, interestType, nameType, parkingType, parkingProximity, fronting, access, topo, utilities.

  • CANONICAL FLOW SHAPE FOR EVERY OUTBOUND wsConsumer CALL IN THE ESTATE — cite this one when building the generic mock harness. Key semantics: (1) the response can carry a MULTI-VALUED fault reason list (LOOP IN-ARRAY="/fault/reasons"), so a mock must be able to return several business-level rejection reasons in one response — this is richer than the single-fault shape everywhere else; (2) publishError is present but DISABLED in the catch, so hard failures are logged and swallowed rather than raised to the error subsystem; (3) recovery is a SEPARATE, HUMAN-INVOKED reRequest* service — there is no automatic retry, so a mock should expect a duplicate request only after explicit worker action.

  • Four sub-interfaces: FIDM (financial institution data match), DirectAccountHistory, FILookup (+Ping health check), GeoLocator. Every one has a paired ReRequest operation — the vendor answers asynchronously and IES polls; a deterministic mock needs a pending→ready state machine, not a single-shot response. common_AssetDetails_Remap and the whole ns/GAIES_AVS/testServices/* tree exist because cmres: and include: namespaces model AssetDetails differently — a known shape mismatch to reproduce.

  • All three jobs share one reader/processor/writer triple and differ only by the filePath parameter and cadence — so canopy needs ONE mock ingester parameterised by directory + report-id prefix. Non-file entries throw and are skipped (RpBatchBOImpl.java:1197-1199); an unmatched report-id yields a null queue row (no error). Ingested rows are written straight to status RC (report-complete).

  • Response job has three chunks: response load (AvsResReader/Writer), EDBC trigger (AvsTriggerEdbc*, TriggerEDBCBatchlet), and task creation (AvsCreateTask*, partition mapper). Pre-send validation batchlets: AvsSndDuplicateCheckBatchlet, AvsSndLADResValidationBatchlet, AvsSndReqDateValidationBatchlet — mock should exercise duplicate/date/LAD-response rejection paths.

  • Clean request/response type split makes this one of the easiest partners to mock from types alone. The DetectionRequestType alongside VerificationRequestType implies two request modes.

  • The AVS response directly triggers an eligibility re-determination (EDBC) — a mock must model the downstream trigger, not just the file.

  • Not on the assigned marker list. 'lnreq' = liquid-resource request. Vendor is Accuity.

  • Good candidate for a small static fixture: 6 columns, no PII.

IRS — BEER / FTI

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

outbound (request/extract file to IRS)

batch file → JAXB record (send-only document type)

fixed-position layout, header/detail/trailer; ns http://www.example.org/InDIFSLAElgInfoSendSchema

annual/periodic batch keyed on taxYearCode

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/InDIFSLAElgInfoSendDocument.java:104 (root), :300 DifslaElgInfo, :418 DifslaPersControlInfo, :599 DifslaPersInfoDetails, :996 Trailer

bidirectional

batch file via webMethods ActiveTransfer MFT; outbound built by a JSR-352 chunk pipeline with a generated control file

fixed-width — IrsSndRecord plus a separate IrsSndCntlRecord control/trailer record

monthly (IES_IRS_OUTBOUND_MONTHLY_FILE outbound, IRS_IES_INBOUND_MONTHLY_TILE inbound; jobs IN-SNIRS-MLY, IN-RCIRS-MLY)

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNIRS-MLY.xml:36,53-63 (IrsProcessBatchlet, IrsSndStgReader/Processor/Writer, finalFilePath property); batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/irs/ (23 files incl. CreateControlFileBatchlet.java, RenameFileNameBatchlet.java, IrsEmailBatchlet.java, util/IrsSndCntlRecord.java); inbound job properties worker-portal/BATCH/IN/src/batch-fast4j-properties/IN-RCIRS-MLY-fast4jCustomDAOsList.properties; MFT events in worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1

bidirectional (outbound send dominant)

batch file over SFTP; dedicated FTI Oracle datasource; separate FTI batch launcher

BeanIO fixed-length layout, record width 134, 22 fields, 1 record type; agency code + tax-year code + SSN name-control fields; SQL*Loader control staging

monthly (job suffix -MLY); IN-SNIRS-MLY

worker-portal/BATCH/IN/src/resource-mapping/irs-snd-mapping.xml:5-30 (stream IrsSndRecords, format="fixedlength"); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNIRS-MLY.xml:1-70; worker-portal/IEApp_Properties/local_batch/batch/batch-framework.properties:32-38 (irs.server.ip, irs.server.username, irs.server.password, irs.server.port, irs.server.remote.path.cntl, irs.email.receipient); worker-portal/IEApp_Properties/Local/Application.properties:14-15 (FTI_DATASOURCE, comment "FTI Interface DB property"); worker-portal/IEApp_Properties/local_batch/Application.properties:13-16 (FTI_USER, FTI_PASSWORD, FTI_URL); worker-portal/IEApp_Properties/local_batch/rp.properties:16-17 (non_fti_reports_folder, fti_reports_folder)

outbound

SFTP + local script invocation; reporting DB and Pentaho transformation DB

report files (PDF/XLS) into separate non-FTI and FTI folders; wsdl-based RP correspondence service; pc_to_rc archive/cleanup scripts

daily/weekly/monthly/quarterly/yearly (RP-QUEUE-DLY/-WLY/-MLY/-QLY/-YLY, RP-RUN-DLY, RP-ARCHIVEREP-DLY, RP-S7BIARCHIVE-MLY)

worker-portal/IEApp_Properties/local_batch/rp.properties:2-27 (rp.wsdl.path, rp.wsdl.username, rp.wsdl.password, rp.remote.file, rp.ftp.server, rp.locale, rp.burst.option, rp.pcs.file, sftp.reports.server.ip, sftp.reports.user, sftp.reports.password, sftp.port, non_fti_reports_folder, fti_reports_folder, pc_to_rc.file_location, pc_to_rc.file_name_suffix, pc_to_rc.script_folder, pc_to_rc.archive_script_name, pc_to_rc.cleanfs_script_name, rp.email.receipient, rp.campaignId.failure), :59-66 (sec.users.dr.server.ip/.user/.password/.port/.script_folder/.script_name); worker-portal/IEApp_Properties/Local/Application.properties:84-86 (RP_REPORTS_PATH, CRYSTAL_BATCH_DIR_PATH, PENTAHO_DIR_NAME), :113-119 (DB_NAME, HOST_NAME, DATABASE_TYPE, DB_PORT, PENTAHO_TARGET_DATABASE_NAME), :406-407 (commented OBIEE_GRAPH_URL); worker-portal/BATCH/RP/src/META-INF/batch-jobs/ (25 jobs)

bidirectional

batch file over SFTP via MFT

flat data file (fixed-width)

monthly

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:2008 (IRS_IES_INBOUND_MONTHLY_TILE, active=true) and :5943 (IES_IRS_OUTBOUND_MONTHLY_FILE, active=true); duplicated at '[secret-bearing path withheld]':2911

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

fixed-width flat file (IRS IEVS layout); layout not present in this subsurface

monthly both directions

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 → IES_IRS_OUTBOUND_MONTHLY_FILE, IRS_IES_INBOUND_MONTHLY_TILE (sic, 'TILE' typo for FILE); filename tokens InSndIRSMlyRequestDat ([secret-bearing path withheld]:2936) and InRcvIrsResponseDat

inbound

not wired in this surface — DAO/DB read of already-received FTI records; the wire ingest lives outside worker-portal/IN

unknown from this surface (DB rows)

not discernible here

worker-portal/IN/common/src/gov/state/nextgen/in/bo/FtiInIrsReceiveBO.java:18 (class FtiInIrsReceiveBO), :23 (doc comment: 'calls the Search Criteria DAO Method')

outbound

batch file, launched by a dedicated FTI runner script (separate JVM/TLS config from the general runner)

fixed-width; irs-snd-mapping.xml

monthly

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNIRS-MLY.xml (93 lines; package gov.state.nextgen.in.batch.irs, mappingFile resource-mapping/irs-snd-mapping.xml); worker-portal/BATCH/IN/src/resource-mapping/irs-snd-mapping.xml format="fixedlength"; dedicated launcher [secret-bearing path withheld] (52 lines) vs the general worker-portal/BATCH/IN/scripts/IN-BATCH-RUN-PARAMETERS.ksh (28 lines); file-move step gov/state/nextgen/in/batch/irs/batchlet/CopyFileBatchlet.java

outbound

batch file (fixed-width) + companion control file, renamed then emailed/handed off

BeanIO fixedlength, 134-byte record, 22 fields incl. 12 filler fields; agency code defaulted to 658, taxYrCd default F01, dual SSN fields (hqrClSsn/hqrClSsnsec), name controls (hqrClNmCtl), ivesCltId/ivesCaseId; separate fixed-length control record stream

monthly

worker-portal/BATCH/IN/src/resource-mapping/irs-snd-mapping.xml:5-30 (stream IrsSndRecords, format=fixedlength; field positions/lengths); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNIRS-MLY.xml:57-60 (streamName=IrsSndRecords, mappingFile=resource-mapping/irs-snd-mapping.xml), :77-89 (RenameFileNameBatchlet → CreateControlFileBatchlet → IrsEmailBatchlet); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/irs/batchlet/CreateControlFileBatchlet.java:87-92 (StreamBuilder "irsSndCntlRecord" fixedlength); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/irs/util/IrsSndCntlRecord.java

bidirectional

SFTP over SSH port 22 (JSch ChannelSftp + exec channel for remote shell commands)

Binary report files (.pdf / .xls / .xlsx / .csv) stored to DB as BLOBs with MIME-ish tags "bin/pdf" and "bin/xls"

daily (RP-STORERPDB-DLY, RP-CLNFS-DLY, RP-ARCHIVEREP-DLY); monthly archive RP-S7BIARCHIVE-MLY

worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/writer/RpCopyFileSystemToDbBatchWriter.java:127-150 (insertBlobForFtiAndNonFti — checkForFti(rpId) selects ftiReportsFolder vs nonFtiReportsFolder, then sftpChannel.cd(…​) and insertBlobToFtiRpQueue / insertBlobToRpQueue); worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/util/RpBatchConstants.java:86-97 (sftp.reports.server.ip, sftp.reports.user, sftp.reports.password, sftp.port, non_fti_reports_folder, fti_reports_folder); worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/util/RpBatchUtil.java:133-152 (getReportsChannelSession — JSch, port 22, password auth, StrictHostKeyChecking=no); RpBatchUtil.java:155+ (getRemoteFileAsBlob via sftp.get + lstat size)

Mock-relevant facts
  • Three-part structure. Control/header (DifslaPersControlInfo, :418-429): programName, agencyCode, totalRecordCount, contactPersonName, telNumWithAreaCode. Detail (DifslaPersInfoDetails, :599-632): agencyCode, taxYearCode, newRecordIdentifier, requestType, documentType:int, primaryTINvalidityInd:int, secondaryTINValidityInd:int, primaryTIN:long, secondaryTIN:long, assistanceCodes:long, nameContro1, nameContro2, requestingAgencyInfo, d3FileInd, agencyAbbreviation, requestedOutput. Trailer (:996-999): totalRecordCount. nameControl (4-char IRS name control), primaryTIN/secondaryTIN, taxYearCode, documentType and assistanceCodes are the IRS code families a mock must model. NOTE: the class name is misspelled nameContro1/nameContro2 in the generated source — carry the correct semantic (nameControl1/2) into canopy, don’t copy the typo.

  • Password is stored encrypted in properties and decrypted at runtime via SecurityServiceFactory.getPasswordSecurityService().decrypt(…​) — no plaintext credential in source. StrictHostKeyChecking is disabled (RpBatchUtil.java:147) — an interface fact worth reproducing as a deliberate NON-behavior in canopy’s mock/host policy. FTI indicator is resolved from RP_MASTER_TEMPLATE via checkForFti(rpId) (RpBatchBOImpl / RpCopyFileSystemToDbBatchWriter.java:~215+). Report lifecycle status codes on the queue row: PS pending-schedule, RS report-scheduled, FL failed, PC pending-copy, RC report-complete, plus a parallel conversion set CS/CR/CF/CP/CM (RpBatchConstants.java:44-62).

  • Both legs ACTIVE in the Sprint3 export (most actions are active=false). Same fire-and-forget file semantics: no ack, no retry, error branch to the error dir + notify. FTI HANDLING NOTE FOR MOCKS: because the transport is a shared staging dir with an archive copy, the archive dir is itself an FTI store — a canopy mock/fixture must use synthetic data only and must not mirror Gateway’s practice of leaving cleartext files in archive. The inbound action name contains a typo, MONTHLY_TILE (not _FILE).

  • Job pipeline: IrsProcessBatchlet (pre) → chunk (IrsSndStgReader/Processor/Writer stages to IN IRS stg table) → RenameFileDecision → rename → control file → email. A dedicated FTI-segregated launcher exists: [secret-bearing path withheld] (name only recorded; contents not extracted). Actual output filename is a runtime jobParameter (filePath/finalFilePath), not in the repo.

  • FTI has its own separate batch launcher script and its own DB credentials, physically segregating the FTI path. Launcher script [secret-bearing path withheld] contains hardcoded keystore/truststore passwords and a PGP passphrase in JAVA_ARGS — path recorded only, values not extracted.

  • SECRETS AVOIDED: [withheld] lines ~21-33 set JAVA_ARGS with keystore/truststore material (comment at line 28 references batch.jks / keystore.jks / truststore.jks). Not extracted — path recorded only. The existence of a separate FTI launcher is itself the interface fact: FTI jobs run under a distinct TLS/keystore profile.

  • Only FTI-named artifact in this surface and it is read-only over a DAO. The actual IRS inbound feed is NOT in worker-portal/IN — look in the BATCH module. Flagged for canopy because any mock of this data path inherits IRS Pub 1075 safeguards.

  • 136 \bIRS\b hits. Mock data for this interface must be wholly synthetic. Note the pipeline emits a control file alongside the data file and sends a completion email — replicate both in a mock.

  • The explicit non_fti_reports_folder / fti_reports_folder split is the clearest FTI-segregation control in the config surface — canopy should preserve an equivalent.

  • FTI. Any canopy test mock must use synthetic data only and the fixture must be marked non-FTI. No layout, no credentials and no endpoint captured here.

Adobe LiveCycle / central print vendor

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the Georgia Technology Authority webMethods ESB (GAIES_*.wsProvider naming; ESB host/port redacted)

WSDL 1.1; imports Adobe namespace http://adobe.com/idp/services; base64 document payloads

real-time for preview/online correspondence; batch-oriented for central print file upload

6 sibling WSDLs under worker-portal/IEWebApp/WebContent/wsdl/ADOBEServiceIntegration/ with a byte-duplicate set under worker-portal/IN/ejbModule/META-INF/wsdl/. Services/ops: GAIES_ADOBE_wsProvider_centralPrintFileUpload_Port_1.wsdl:95 service GAIES_ADOBE.wsProvider.centralPrintFileUpload, :77 portType, :78 op centralPrintFileUpload; …​_centralPrintSuppress_Port_1.wsdl:93/:75/:76 op centralPrintSuppress; …​_centralPrintUnsuppress_Port_1.wsdl:93/:75/:76 op centralPrintUnsuppress; …​_onlineCorrespondence_Port_1.wsdl:102/:84/:85 op onlineCorrespondence; …​_onlineCorrespondencePreview_Port_1.wsdl:102/:84/:85 op onlineCorrespondencePreview; …​_onlineCorrespondencePreviewNoMark_Port_1.wsdl:102/:84/:85 op onlineCorrespondencePreviewNoMark. Client stubs: worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/{centralprint,suppress,unsuppress,localprint,preview,OnlineCorrespondencePreviewNoMark}/

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1; qrCodeId → caseNum, applicationNum, clientId, docType, programCode, hohIndicator, returnedMail, generateDate

real-time (mailroom scan events)

worker-portal/IN/ejbModule/META-INF/wsdl/QRScannerLookup.wsdl:65 (service QRScannerLookupService), :47 (portType QRScannerLookupPortType), :48 (operation qrCodeDetails); sun-jaxws.xml endpoint QRScannerLookupService, url-pattern=/QRScannerLookupService, impl QRScannerLookupImpl

outbound

SOAP (real-time preview) + batch file via webMethods MFT

WSDL — centralPrintFileUpload, centralPrintSuppress, centralPrintUnsuppress, onlineCorrespondence, onlineCorrespondencePreview, onlineCorrespondencePreviewNoMark; envelope/form XSDs (IESEnvelopeXMLSchema.xsd, IESFormXMLSchema.xsd, 28 per-notice NGG*_IESFormXMLSchemaValidator.xsd)

real-time preview; daily print batches (IES_ADOBE_OUTBOUND_CO_FILE, IES_ADOBE_OUTBOUND_ENV_FILE; CO-CREATEPDF-DLY, CO-MRGPDF-DLY, CO-ENVELOPE-DLY, and ~90 CO-NGG*/CO-NGGA* notice jobs)

worker-portal/IEWebApp/WebContent/wsdl/ADOBEServiceIntegration/ (6 WSDLs); worker-portal/IN/ejbModule/META-INF/wsdl/GAIESADOBE*.wsdl; schemas worker-portal/CO/xsd/IESEnvelopeXMLSchema.xsd and IESFormXMLSchema.xsd; per-notice validators worker-portal/CO/ejbModule/META-INF/xsd/NGG*_IESFormXMLSchemaValidator.xsd (28 files); MFT worker-portal/IN/webMethods/IES_Adobe_Outbound_Events; job defs in worker-portal/BATCH/CO/src/META-INF/batch-jobs/

outbound

SOAP to an AEM host (not via the ESB)

WSDL; /soap/services/GA_IES_Print/processes/{OnlineCorrespondencePreview, OnlineCorrespondence, CentralPrintFileUpload, CentralPrintSuppress, CentralPrintUnsuppress, OnlineCorrespondencePreviewNoMark}

real-time (preview/local print) + daily central-print batch

worker-portal/IEApp_Properties/Local/Application.properties:260-282 (AEM_PREVIEW_*, AEM_LOCALPRINT_*, AEM_CENTRALPRINT_*, AEM_SUPPRESS_*, AEM_UNSUPPRESS_*, AEM_PREVIEW_NO_MARK_SERVICE_URL); worker-portal/IEApp_Properties/local_batch/Application.properties:67-73, 84-86, 101-103; worker-portal/IEApp_Properties/Local/correspondence.properties:1-6 (CO_PDF_PATH, CO_SWITCH, CO_ADOBE_PREVIEW_URL, CO_ADOBE_LOCAL_PRINT_URL, CO_TEMP_XML_PATH); worker-portal/IEApp_Properties/Local/Application.properties:612 (NO_HEADER_NOTICES_LIST)

outbound

SOAP over HTTPS; two routes — direct AEM /soap/services/GA_IES_Print/processes/OnlineCorrespondence?wsdl and webMethods GAIES_ADOBE.wsProvider:onlineCorrespondencePreviewNoMark

WSDL + XSD. Adobe IDP namespace http://adobe.com/idp/services; operation onlineCorrespondencePreviewNoMark / onlineCorrespondence; shapes Invoke / InvokeResponse / BLOB / FormDataTypeInstance / FormInstanceBase / MyArrayOfXsdAnyType. Input is form XML conforming to bridgesClient/IESFormXMLSchema.xsd (6776 lines); batch driver schema Corr.xsd wraps Batch→disList→corrList→corr[0..500]. Output is a PDF byte[].

real-time for on-screen preview; the Corr.xsd Batch/corrList[500] shape indicates a batched print path as well

WSDL: customer-portal/bridgesClient/META-INF/adobePdfService/'GAIES_ADOBE.wsProvider onlineCorrespondencePreviewNoMark.wsdl':2 (targetNamespace), :4 (adobe idp schema), :87-97 (portType/operation), :107-109 (service + soap:address). Call: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2962 (getPdfUsingXmlFromAem), :2968 (AppConstants.PDF_WEBSERVICE_URL). Stubs: bridgesClient/com/adobe/idp/services/ (GA_IES_Print_processes_OnlineCorrespondencePreviewNoMarkServiceStub.java, GAIESPrintProcessesOnlineCorrespondenceCPNoWatermarkPDFService.java, BLOB.java, Invoke.java, InvokeResponse.java), bridgesClient/nsonlinecorrespondence/ (CallPdfWebService.java, OnlineCorrespondencePortType.java), and bridgesClient/[vendor-host-derived package withheld] Schemas: bridgesClient/IESFormXMLSchema.xsd, bridgesClient/Corr.xsd:4-20, bridgesClient/gov/state/nextgen/co/util/xsd/schema/notices/ + /noticescorr/. Consumer in my surface: accessEJB/ejbModule/gov/state/nextgen/access/business/services/CommentsEJBBean.java:652 (CallPdfWebService.generatePdfWebService). Key: sharedApp/…​/AppConstants.java:1875 = "PDFWebService"; endpoint framework/properties/config/production_env.properties:160

bidirectional

SOAP over HTTPS (IES exposes 5 wsProvider endpoints) + MFT batch file drops

WSDL + XSD; flat/print file for the batch legs

real-time for preview/suppress ops; event-driven file drops for print

Providers: worker-portal/IEWebApp/WebContent/wsdl/ADOBEServiceIntegration/GAIES_ADOBE_wsProvider_{centralPrintFileUpload,centralPrintSuppress,centralPrintUnsuppress,onlineCorrespondencePreview,onlineCorrespondencePreviewNoMark}_Port_1.wsdl — all document/literal, MEP input+output. Batch: worker-portal/IN/webMethods/IES_Adobe_Outbound_Events:1 (IES_ADOBE_OUTBOUND_ENV_FILE, active=true), :195 (IES_ADOBE_OUTBOUND_CO_FILE, active=true). webMethods GAIES_ADOBE canonical header: direction=Outbound, 'WEBSERVICE CALL TO ADOBE'

outbound

SOAP + outbound batch file

WSDL+XSD with BLOB and XML attachment doc types (docTypeRef_impl_BLOB, docTypeRef_impl_XML)

real-time for preview/online correspondence; nightly file drops for central print

worker-portal/IN/webMethods/GAIES_ADOBE_Full_v1.zip → ns/GAIES_ADOBE/wsConsumer/{centralPrint_,centralPrintSuppress_,centralPrintUnsuppress_,onlineCorrespondence_,onlineCorrespondencePreview_}/connectors/GA_IES_Print_processes_*_invoke, matching ns/GAIES_ADOBE/services/* and ns/GAIES_ADOBE/wsProvider/*; batch at worker-portal/IN/webMethods/IES_Adobe_Outbound_Events (IES_ADOBE_OUTBOUND_CO_FILE, IES_ADOBE_OUTBOUND_ENV_FILE)

outbound

SOAP, DUAL-ROUTED: webMethods IS package GAIES_ADOBE on :5555/:9445 AND direct Adobe LiveCycle at :9443 path /soap/services/GA_IES_Print/processes/<op> (namespace http://adobe.com/idp/services). Six operations.

WSDL+XSD (6 WSDLs)

real-time preview; central-print file upload is batch-oriented

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/{centralprint,localprint,preview,suppress,unsuppress,OnlineCorrespondencePreviewNoMark}/ — each has BOTH a GAIES_ADOBE*Stub.java and a GA_IES_Print_processes_*ServiceStub.java (the dual route); centralprint/GAIESADOBEWsProviderCentralPrint.java:17; ejbModule/META-INF/wsdl/GAIESADOBE{centralPrintFileUpload,centralPrintSuppress,centralPrintUnsuppress,onlineCorrespondence,onlineCorrespondencePreview,wsProvideronlineCorrespondencePreviewNoMark}.wsdl; common/src/gov/state/nextgen/in/bo/{CentralPrintBO,LocalPrintBO,PrintPreviewBO,SuppressBO,UnSuppressBO,OnlineCorrespondencePreviewNoMarkBO}.java; webMethods/GAIES_ADOBE*.zip (4) + IES_Adobe_Outbound_Events + ADOBE_OnlineCorrespondencePreviewNoMark.sql; ejbModule/…​/centralprint/File/

outbound

SOAP (com.adobe.idp.services)

XML document in (form data XML, per-language) → PDF byte[] out

real-time, at application submit / notice render; also invoked from the PDF-upload-to-DIS batch flow

customer-portal/commonApp/gov/state/nextgen/access/business/rules/DocumentManagementBO.java:5157-5158, :5174-5175, :6118-6119 (CallWebService.getPdfUsingXmlFromAem), :5638 and :6177 null-PDF guards. Client: bridgesClient/…​/CallWebService.java:2962-3015 (env key AppConstants.PDF_WEBSERVICE_URL, com.adobe.idp.services.XML, CallPdfWebService.generatePdfWebService)

Mock-relevant facts
  • Gateway-as-client. Target namespaces are bare webMethods strings ('nscentralPrintFileUpload', 'nsonlineCorrespondence', …) EXCEPT onlineCorrespondencePreviewNoMark, whose targetNamespace embeds an internal webMethods hostname (file GAIESADOBEwsProvideronlineCorrespondencePreviewNoMark.wsdl:2 / GAIES_ADOBE_wsProvider_onlineCorrespondencePreviewNoMark_Port_1.wsdl:2) — a mock must reproduce that namespace string exactly, and canopy should treat it as an environment leak to sanitise. Corresponding config keys AEM_PREVIEW/LOCALPRINT/CENTRALPRINT/SUPPRESS/UNSUPPRESS/PREVIEW_NO_MARK_SERVICE_URL in IEApp_Properties/Local/Application.properties.

  • MIXED SYNCHRONOUS + BATCH for one partner: preview/suppress/unsuppress are synchronous SOAP (worker clicks 'preview notice' and blocks), while actual print production is an outbound FILE drop (_ENV_FILE envelopes, _CO_FILE correspondence) — both active=true. centralPrintFileUpload is a provider (inbound) op, i.e. the print vendor uploads back into IES. onlineCorrespondencePreviewNoMark is a watermark-free variant of preview — two near-identical ops a mock must keep distinct. One ADOBE WSDL carries a build-host in its tns (path recorded; host not reproduced).

  • Five operations, each with a wsProvider face and a wsConsumer face — IES calls the provider, the hub relays to the Adobe GA_IES_Print_processes endpoints. Suppress/Unsuppress are the print-hold controls. CO = correspondence, ENV = envelope/enclosure file. Registry key Adobe_CorrespondencePreview_NoMark (GAIES_Common SQL) selects an unwatermarked preview variant.

  • Gateway-as-server. targetNamespace 'qrscanner.services.business.ejb.nextgen.state.gov'. The 'returnedMail' response flag is the tell for the undeliverable-mail workflow; vendor is not named in the contract.

  • English + Spanish variants rendered separately (DocumentManagementBO.java:5175 passes FwConstants.ENGLISH). COTS dependency canopy replaces, but the XML→PDF contract shape is worth mocking.

  • Maps to canopy’s notices service. The suppress/unsuppress pair is a print-hold control worth mocking explicitly. 'NoMark' = preview without watermark.

  • Directly relevant to canopy’s notices service. The 28 per-notice XSD validators are an excellent contract source for notice-generation mocks.

  • "NoMark"/"NoWatermark" variants distinguish preview-with-DRAFT-watermark from the final render.

  • AEM_CENTRALPRINT block is declared twice in the batch profile (lines 84-86 and 101-103).

Equifax — The Work Number (TALX)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the GTA webMethods ESB (GAIES_WorkNumber.wsProvider.workNumberRequest; endpoint host redacted); an older direct-to-webMethods-IS copy also exists

WSDL 1.1; ALL-CAPS vendor field vocabulary (DTORIGINALHIRE, DTMOSTRECENTHIRE, DTEMPLOYMENTEND, DTMOSTRECENTPAY, CURRENTPAYPERIODDETAIL_V100, EMPLOYERCODE, EMPLOYEESTATUS, ADDITIONALINCOME, DENTALINSURANCE, DISCLAIMERTEXT/TYPE, DEMOTRN/DEMOTYPE/DEMOHANDLING); 595 lines

real-time (two operations: employer details, employer history)

worker-portal/IEWebApp/WebContent/wsdl/WNServiceIntegration/GAIES_WorkNumber_wsProvider_workNumberRequest_Port_1.wsdl:591 (service GAIES_WorkNumber.wsProvider.workNumberRequest), :560 (portType workNumberRequest_PortType), :561 op requestEmployerDetails, :565 op requestEmployerHistory; near-duplicate worker-portal/IN/ejbModule/META-INF/wsdl/GAIES_WorkNumberwsProviderworkNumberRequest.wsdl:591/:560/:561,:565. Client stub worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/worknumber/. Config key WORKNUMBER_SERVICE_URL in IEApp_Properties/Local/Application.properties

bidirectional

SOAP (real-time) via webMethods provider GAIES_WorkNumber.wsProvider.workNumberRequest; OFX-derived payload

WSDL+XSD, operations requestEmployerDetails and requestEmployerHistory; payload types are OFX/SSV (SIGNONMSGSRSV1, SSVEMPLOYERHISTRQ/RS, SSVSOCIALSERVICERQ/RS, PAYPERIODINCOMEV100, etc.)

real-time

worker-portal/IEWebApp/WebContent/wsdl/WNServiceIntegration/GAIES_WorkNumber_wsProvider_workNumberRequest_Port_1.wsdl:560-565,591 (portType, both operations, service); second copy worker-portal/IN/ejbModule/META-INF/wsdl/GAIES_WorkNumberwsProviderworkNumberRequest.wsdl; generated client customer-portal/bridgesClient/[vendor-host-derived package withheld] (~80 JAXB classes); TALX legacy naming at worker-portal/Common/src/gov/state/nextgen/common/dao/custom/InWorknumResponseDAO.java:96 (findbySsnForEarnedIncomeTALX); webMethods packages GAIES_WorkNumber_*.zip

bidirectional

web service via GTA broker

generated JAXB request/response tree (InitiateSearch Request/Response with Transaction/TransactionDetails/Value; a gta sub-package with Root/Error)

real-time

worker-portal/IN/common/src/gov/state/nextgen/in/equifax/gta/Root.java:1 and Error.java:1; worker-portal/IN/common/src/gov/state/nextgen/in/equifax/InitiateSearch/Response/Transaction.java:1, TransactionDetails.java:1, Value.java:1

outbound

SOAP via webMethods ESB (The Work Number) + REST via ESB (/rest/IES_Equifax/services/initialRequest and /employmentIncome)

WSDL provider path GAIES_WorkNumber.wsProvider.workNumberRequest/…​_Port?wsdl; REST JSON with organization id + media type

real-time; plus a bi-weekly QA job DC-QAWRKNUM-BLY

worker-portal/IEApp_Properties/Local/Application.properties:211-214 (WORKNUMBER_SERVICE_URL, WORKNUMBER_NAME_SPACE, WORKNUMBER_SERVICE_NAME), :498-507 (EQUIFAX_INITIATE_SEARCH_SERVICE_URL, EQUIFAX_INCOME_SERVICE_URL, EQUIFAX_SERVICE_USERID, EQUIFAX_SERVICE_PASSWORD, ORGANIZATIONID, EQUIFAX_SW, EQUIFAX_MEDIA_TYPE, EQUIFAX_TYPE1_SWITCH, EQUIFAX_TYPE2_SWITCH); worker-portal/IEApp_Properties/local_batch/Application.properties:46-49; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/experian (package present)

outbound

SOAP via webMethods GAIES_WorkNumber.wsProvider:workNumberRequest

WSDL-generated JAXB over OFX (Open Financial Exchange) message shapes. Operations: requestEmployerHistory (SSVEMPLOYERHISTTRNRQ → EmployerHistoryResponse), requestEmployerDetails (→ EmployerDetailsResponse). Payload tree: OFX / SIGNONMSGSRSV1 / SONRS / SSVVERMSGSRSV1 / SSVEMPLOYERHISTTRNRS / SSVEMPLOYERHISTRS / SSVEMPLOYERHISTV100 → SSVEMPLOYERV100, SSVEMPLOYEEV100, SSVBASECOMP, SSVANNUALCOMP, SSVBENEFITSV100, PAYPERIODSUMMARYV100/COLLECTION, PAYPERIODINCOMEV100, PAYPERIODDEDUCTIONSV100, CURRENTPAYPERIODDETAILV100, EMPLOYEESTATUS, WORKLOCATION, SSVPAYFREQUENCY, SSVWORKERCOMP, plus insurance blocks (MEDICALINSURANCE, DENTALINSURANCE, VISIONINSURANCE, INSCOVERAGE, INSELIGIBILITY, INSURANCECARRIER, INSCOVEREDDEPENDENTS, INSDEPENDENT), NCCICLASSIFICATION, ITEMIZEDDISCLAIMERS, SPECIALHANDLING, TRNPURPOSE

real-time, batched per-application (loops the SSN list for all individuals on an application)

Call: customer-portal/bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2091-2126 (callWorkNumberWebService; QName [host withheld] at :2104-2105; requestEmployerHistory at :2109). Stubs: bridgesClient/[vendor-host-derived package withheld] (~78 classes incl. WorkNumberRequestPortType.java, GAIESWorkNumberWsProviderWorkNumberRequest.java). ORCHESTRATION IN MY SURFACE: customer-portal/afbEJB/ejbModule/gov/state/nextgen/access/business/services/AFBVerificationServicesEJBBean.java:76-138 (loadWorkNumberService) — pulls the SSN list via RMBReceiveWebServiceBO.getSsnForIndivduals(appNum) at :93-98 and iterates. Actual invocation: commonApp/gov/state/nextgen/access/business/rules/RMBReceiveWebServiceBO.java:1671, :1725, :2173, :2211

outbound

raw HTTPS POST via pub.client:http (no wsConsumer)

OFX (Open Financial Exchange) response envelope; XML request

real-time, worker-initiated

worker-portal/IN/webMethods/GAIES_WorkNumber_Full_v1.zip → ns/GAIES_WorkNumber/services/requestEmployerDetails/flow.xml: pub.client:http at line 2479 with COPY /xmldata → /data/string and COPY /_url → /url; status gate BRANCH SWITCH="/header/status" case 200 at 3290; format dispatch BRANCH SWITCH="/socialServiceHistoryResponse/OFX" at 4534. Provider facade: worker-portal/IEWebApp/WebContent/wsdl/WNServiceIntegration/GAIES_WorkNumber_wsProvider_workNumberRequest_Port_1.wsdl — ops requestEmployerDetails + requestEmployerHistory, doc/literal, MEP input+output; also GAIES_WorkNumberwsProviderworkNumberRequest.wsdl in the jax-ws-catalog

outbound

SOAP

WSDL+XSD; doc types employerDetailsRequest/Response, employerHistoryRequest/Response plus OFX-style SSVEMPLOYERDETAILS and SSVEMPLOYERHISTTRNRQ

real-time

worker-portal/IN/webMethods/GAIES_WorkNumber_Full_v1.zip → ns/GAIES_WorkNumber/services/{requestEmployerDetails,requestEmployerHistory}, ns/GAIES_WorkNumber/wsProvider/workNumberRequest, ns/GAIES_WorkNumber/doc/{SSVEMPLOYERDETAILS,SSVEMPLOYERHISTTRNRQ}, ns/GAIES_WorkNumber/utils/setCommonVarsWorkNbr

outbound

TWO PARALLEL PATHS: (a) direct REST/JSON over HTTPS via java.net.HttpURLConnection, two-step InitiateSearch → Employment(Income); (b) SOAP via webMethods IS package GAIES_WorkNumber, service wsProvider.workNumberRequest

(a) JSON request/response POJO trees; (b) WSDL+XSD

real-time, worker-initiated

REST: worker-portal/IN/common/src/gov/state/nextgen/in/equifax/EquifaxBO.java:373-400 (HttpURLConnection, resourceURL from FwPropertyLoader key WorkNumberConstants.EQUIFAX_INITIATE_SEARCH_SERVICE_URL), :679-740 (second call, key EQUIFAX_INCOME_SERVICE_URL), :928-940 (getURL: replaces literal tokens 'transactionId' and 'employercode' in the configured URL template, then appends a query string). Models: common/src/gov/state/nextgen/in/equifax/InitiateSearch/{Request,Response}/, equifax/Employment/Response/ (~30 classes incl. Employee, Employer, AnnualCompensation, CurrentPayPeriodDetail, HistoricalPayPeriodSummary), equifax/gta/{Root,Error}.java. SOAP: ejbModule/gov/state/nextgen/ejb/business/services/worknumber/GAIESWorkNumberWsProviderWorkNumberRequest.java:20; ejbModule/META-INF/wsdl/GAIES_WorkNumberwsProviderworkNumberRequest.wsdl; common/src/gov/state/nextgen/in/bo/INWorkNumberBO.java; ejbModule/…​/in/INWESWorkNumSummaryEJBBean.java; webMethods/GAIES_WorkNumber_{v1,Full_v1}.zip

outbound

SOAP via webMethods Integration Server wsProvider

WSDL+XSD; two operations — employer history (→ EmployerHistoryResponse) and employer details (→ EmployerDetailsResponse); service QName GAIES_WorkNumber.wsProvider.workNumberRequest

real-time, on-demand during Report-My-Benefits / income verification flows

customer-portal/commonApp/gov/state/nextgen/access/business/rules/RMBReceiveWebServiceBO.java:21,29 (imports [vendor-host-derived package withheld] / WorkNumberRequestPortType); :1671 fullEmploymenthistory, :1725 fullEmploymentdetails, :2173-2188 callWorkNumberWebService, :2211 callWorkNumberWebServiceDetails

Mock-relevant facts
  • Gateway-as-client. The two copies differ meaningfully: the IEWebApp copy uses targetNamespace 'nsworkNumberRequest' and an ESB endpoint, while the IN copy’s targetNamespace (line 2) embeds an internal webMethods hostname and points at a direct IS port — evidence of an ESB migration where the old contract was never deleted. The DEMOTRN/DEMOTYPE/DEMOHANDLING fields indicate the vendor supports a demo/sandbox mode, which canopy’s mock should mirror. Note also separate EQUIFAX_INITIATE_SEARCH_SERVICE_URL / EQUIFAX_INCOME_SERVICE_URL and TRUV_ENDPOINT_URL keys in config — additional (non-WSDL) income-verification channels.

  • THE ONLY OFX-FORMAT PARTNER — the response is an OFX envelope (/socialServiceHistoryResponse/OFX), not SOAP or plain XML, so a mock must emit OFX. Two ops with different semantics: requestEmployerDetails (current employer) vs requestEmployerHistory (history). Same two-level dispatch as SOLQ: HTTP status 200 gate, then branch on the presence/shape of the OFX body. No timeout, no retry; a synchronous worker-facing SOAP facade wraps the blocking HTTP call.

  • Endpoint URLs are property-driven (NOT hardcoded) — good, and the property KEY NAMES above are the mock seam for canopy. SECONDARY OBSERVATION for canopy’s own logging rules: EquifaxBO.java:738 and :762 log the fully-substituted outbound request URL at ILog.FATAL; that URL embeds transactionId/employercode path params. No credential values were read or extracted from this file.

  • 3,223 Work Number hits; TALX only 5 hits (legacy vendor name surviving in a DAO method name — the marker TALX is real but nearly dead). EQUIFAX marker (255 hits) resolves to a DIFFERENT interface — see the Equifax ID/search finding. The payload being OFX-based is unusual and load-bearing for a mock.

  • 255 EQUIFAX hits, 204 in worker-portal/IN. Separate from The Work Number despite the same corporate parent — different package, different payload. I did not find a WSDL for this one; it may be REST/JSON or broker-mediated. Worth a dedicated dig.

  • The SSVEMPLOYER* doc names are Equifax’s OFX/SSV transaction-request envelope, not plain SOAP bodies — the mock must wrap the payload in that envelope. Single wsProvider (workNumberRequest) fronts both operations.

  • The generated package/QName embeds a webMethods IS node identifier — recorded as evidence of the ESB hop, not as a reachable endpoint. Confirms webMethods as the partner-facing broker pattern.

  • EQUIFAX_TYPE1_SWITCH / TYPE2_SWITCH are partner-behaviour toggles selecting response variants — mocks need both. Credential-shaped keys present; values not extracted.

  • Two distinct calls: employer HISTORY (list of employers) then employer DETAILS (pay periods) per selected employer. TRNPURPOSE is echoed in Splunk telemetry.

PARIS (interstate match)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

bidirectional (PARISInstateInfo inbound, PARISSENDInfo outbound; the two layouts are field-for-field mirrors with different naming)

batch file → JAXB record

fixed-position layout; ns http://www.example.org/PARISInstateSchema (in) and http://www.example.org/InParisFedOutputSchema (out)

quarterly batch (PARIS runs quarterly)

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/PARISInstateInfo.java (1778 ln), …​/PARISSENDInfo.java (1738 ln), wrappers PARISInfoDocument.java / PARISSENDInfoDocument.java

inbound

batch file → JAXB record

fixed-position layout; ns http://www.example.org/InParisFedOutputSchema

quarterly batch

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/InParisFedOutputInfo.java (1394 ln, ~50 fields) + …​/InParisFedOutputInfoDocument.java

inbound

batch file → JAXB record

fixed-position layout; ns http://www.example.org/InParisVetSchema

quarterly batch

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/PARISVetInfo.java:163 (2852 ln, ~130 fields) + …​/PARISVetInfoDocument.java

bidirectional

batch file via webMethods ActiveTransfer MFT; SQL*Loader into IN_PARIS_FED_STG / IN_PARIS_VET_RECV_REC_STG / IN_RCV_PIN_STG

fixed-width — Federal ~1250 bytes, Veteran ~1452 bytes, Interstate ~495 bytes

quarterly, all three match types (IES_PARIS_OUTBOUND_QUARTERLY_REQUEST; PARIS_IES_INBOUND_QUARTERLY_FEDERAL_RESPONSE, …​_INTERSTATE_RESPONSE, …​_VA_RESPONSE)

worker-portal/BATCH/IN/sql-loader-control/InRcParisFederalCtl.ctl (IN_PARIS_FED_STG, POSITION (1092:1250)); InRcvParisVeteranCtl.ctl (IN_PARIS_VET_RECV_REC_STG, POSITION (1448:1452)); InRcvPARISQtrCtl.ctl (IN_RCV_PIN_STG, POSITION(446:495)); MFT events in worker-portal/IN/webMethods/ActiveTransfer_Sprint1_v1 and ActiveTransfer_Sprint2_v2; batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/paris/ (59 files); jobs IN-SNPRI-MLY, IN-SNPRQ-QLY, IN-RCPIN-QLY, IN-RCPVA-QLY, IN-RCPFR-QLY

bidirectional

batch file + SQL*Loader staging

BeanIO fixed-length, 4 records / 281 fields / 1552-char (paris-qly-mapping.xml, stream ParisSndRecordStream); staging IN_PARIS_FED_STG, IN_PARIS_VET_RECV_REC_STG, IN_RCV_PIN_STG

quarterly (IN-SNPRQ-QLY, IN-RCPFR-QLY, IN-RCPIN-QLY, IN-RCPVA-QLY, plus -SPT split variants)

worker-portal/BATCH/IN/src/resource-mapping/paris-qly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcParisFederalCtl.ctl; worker-portal/BATCH/IN/sql-loader-control/InRcvPARISQtrCtl.ctl; worker-portal/BATCH/IN/sql-loader-control/InRcvParisVeteranCtl.ctl

bidirectional

batch file over SFTP via MFT

flat data file (fixed-width)

quarterly; MFT poll interval=300s

worker-portal/IN/webMethods/ActiveTransfer_Sprint1_v1:1 (PARIS_IES_INBOUND_QUARTERLY_VA_RESPONSE, InRcvPARISQtrVAResponseDat), :75 (PARIS_IES_INBOUND_QUARTERLY_INTERSTATE_RESPONSE, InRcvPARISQtrInterstateDat), :149 (IES_PARIS_OUTBOUND_QUARTERLY_REQUEST, InSndPARISQtrRequestDat), :372 (PARIS_IES_INBOUND_QUARTERLY_FEDERAL_RESPONSE); same four repeated in ActiveTransfer_Sprint2_v1:1/126/251/626, Sprint2_v2:171/296/421/796, Sprint3_v1:1/126/1005/1757

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

fixed-width flat file (PARIS standard layout); layout not in this subsurface

quarterly, one outbound request and three distinct inbound responses

worker-portal/IN/webMethods/ActiveTransfer_Sprint1_v1 and ActiveTransfer_Sprint3_v1 → IES_PARIS_OUTBOUND_QUARTERLY_REQUEST (InSndPARISQtrRequestDat, [secret-bearing path withheld]), PARIS_IES_INBOUND_QUARTERLY_FEDERAL_RESPONSE (InRcvPARISQtrFedResponse), PARIS_IES_INBOUND_QUARTERLY_INTERSTATE_RESPONSE, PARIS_IES_INBOUND_QUARTERLY_VA_RESPONSE (InRcvPARISQtrVAResponseDat)

bidirectional

batch file + SQL*Loader stage; outbound extract built by an Oracle stored procedure

fixed-width (POSITION()-based loader control); paris-qly-mapping.xml

quarterly

jobs …​/batch-jobs/{IN-RCPIN-QLY,IN-RCPINSPT-QLY,IN-RCPFR-QLY,IN-RCPVA-QLY,IN-RCPVASPT-QLY,IN-RCPRFSPT-QLY,IN-SNPRQ-QLY,IN-SNPRQMRG-QLY}.xml; loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvPARISQtrCtl.ctl (82 lines, POSITION()-style) → IN_RCV_PIN_STG, InRcParisFederalCtl.ctl (79 lines) → IN_PARIS_FED_STG, InRcvParisVeteranCtl.ctl (107 lines) → IN_PARIS_VET_RECV_REC_STG}; outbound proc worker-portal/BATCH/IN/sql/paris_send_qly_prc.sql (51 lines, signature at lines 1-5: p_success_flag OUT, p_status_message OUT, p_as_of_date IN, p_job_name IN)

bidirectional

batch file (fixed-width); federal/veteran/interstate responses also loaded via SQL*Loader

fixed-width; outbound ParisSndRecord (ssn 9, last 15, first 15, dob 8, fileDate 6, stateName 2, stateOptionalData 60, clientLocatorData 3, caseNumber 10, contact phone/fax/email flags + values, ssnIndicator); three inbound layouts: ParisFedRcvRecord, ParisVetRcvRecord, ParisInRcvRecord (interstate)

quarterly (send IN-SNPRQ-QLY; receive IN-RCPFR-QLY federal, IN-RCPVA-QLY veterans, IN-RCPIN-QLY interstate, plus *SPT-QLY support variants)

worker-portal/BATCH/IN/src/resource-mapping/paris-qly-mapping.xml:5 (ParisFedRcvRecordStream), :69 (ParisVetRcvRecordStream), :176 (ParisInRcvRecordStream), :239-257 (ParisSndRecordStream); worker-portal/BATCH/IN/sql-loader-control/InRcParisFederalCtl.ctl:3 (IN_PARIS_FED_STG), InRcvParisVeteranCtl.ctl:3 (IN_PARIS_VET_RECV_REC_STG), InRcvPARISQtrCtl.ctl:3 (IN_RCV_PIN_STG); alert codes worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/paris/bo/impl/ParisFedRcvBoImpl.java:42 (INT016), ParisInRcvBOImpl.java:44 (INT017), ParisVetRcvBOImpl.java:45 (INT018)

Mock-relevant facts
  • Identity: clientSsn/Surname/FirstName/DateOfBirth, fileDt, stateCd, stateOptionalData, clientLocatorCode, caseNum, fileNumber, payeeNumber, recordType, socialSecNumOfVeteran/OfSpouse/OfPayee, stubNameOfVeteran, stubNamePayeePrsnEntitled, birthDtOfVeteran/OfSpouse/OfPayee, deathDtVeteran, ddEftSegmentInd, aidAttendanceHousebndPayee, three child DOB+firstName pairs, 6 address lines + zipCode. Award block: netAwardDate + current-award line (chngRsnCurrentAwardLn, entitlmntCdCurrntAwrdLn, ttlDpndncyCdCurrntAwrdLn, thsDpndncyCdCurrntAwrdLn, grssAwrdAmtCrrentAwrdLn, netAwrdAmtCurrntAwrdLn, checkAmtCurrntAwrdLn, typeOfWithholding) PLUS NINE identical prior-award history slots (dateOfPriorN, changeReasonN, entitlementCodeN, dependencyTotalAwardN, dependencyThisAwardN, priorNetAwardAmountN, typeOfWithholdingN, grossAwardN, N=1..9). Income code tables: typeOfRecurringExpenses, amountOfRecurringExpenses, sourceOfPayeeIncome, sourceOfSpouseIncome, typeOfOthrRetiremntIncome.

  • ~62 fields. Identity: clientSsn, clientLastName/FirstName, clientDob, stateCd, stateOptData, clientLocCode, caseNum. Contact-supplement block: conSuppPhoneInd/FaxInd/EmailInd + conSuppPhoneNum/Ext/FaxNum/Email + maContactPersonInfo. Money: cashLastPaidAmt, fsLastPaidAmt, workerCompPayAmt. Dates: fileDt, lastEbtAccDt, and SEVEN paired eligibility start/end date ranges (tanf, medicaid, foodStamps, genAssist, ssi, childCare, workerComp). Program indicators: tanfInd, generalAsstInd, foodStampInd, ssiInd, medicaidInd, childCareInd, workersCompInd. Flags/code tables: ssnVerfInd, tanfMonElig, fraudInd, fugitiveFelonInd, probatnNParoleViolatnInd, drugRelatedFelonInd, genderCd, maritalStatus, vaMatchReqCd, stateMatchReqCd, fedMatchReqCd.

  • CANONICAL ONE-REQUEST→THREE-RESPONSE PATTERN, and the clearest example of the no-ack design: a single IES_PARIS_OUTBOUND_QUARTERLY_REQUEST is answered by three separately-scheduled inbound actions (VA, INTERSTATE, FEDERAL) that arrive independently and in any order. These four actions use the EARLY MFT pattern — findFileTask → moveFileTask → emailTask{errorTask:true} (3 tasks, no batch logging, executeErrorTask=false throughout) — i.e. failure notification is an EMAIL only, with no error-directory quarantine. Contrast with the Sprint3-era 9-task chain used by SSA/IRS. A mock for PARIS must model 'response may never arrive' as a normal state; nothing times out.

  • Shape: ssn, stateData, recordType, fileDate, dob, name parts, sex; federal-employment block (unitIdCode, agency, payPlan, payGrade, payStep, basicSalary, payrollOfficeNum, personnelOfficeId, payBasicCode, payPeriodEndDt, disbursingDt, payStatus, catagoryCd, employeeStatusCd, totalBasePayAllDrills, offDutyMilitaryCd, welfareToWorkHireCd); money (grossPay, basicSalary, federalTaxWages, federalTaxWithheld, stateTaxWages, stateTaxWithheld); 6 address lines + mailingAddEffCalendarDt; claimNumber, rtdPayEntEffDt; 4 free-text comment slots.

  • InRcvPARISQtrCtl.ctl is the only .ctl in the directory using explicit POSITION( ) column ranges — the richest inbound fixed-width layout in this surface.

  • One request fans out to three separately-scheduled response pickups — a mock must be able to produce the three response files independently.

  • Partition batchlets exist per match type (ParisFedPartitionBatchlet, ParisVetPartitionBatchlet, ParisQlySndPartition, ParisInRcvPartition).

  • 385 hits. Three distinct response layouts — the mock needs all three.

STARS / $TARS (child support enforcement)

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp under /IES/services/*)

WSDL 1.1; participationStatusInput(IRN, SSN, clientIndicator) → participationStatusOutput/returnStatus

real-time

worker-portal/IN/ejbModule/META-INF/wsdl/ParticipationStatus.wsdl:90 (service ParticipationStatusInquiryService), :63 (portType participationStatusInquiry_PortType), :64 (operation participationStatusInquiry); sun-jaxws.xml endpoint ParticipationStatusInquiryService, url-pattern=/IES/services/ParticipationStatusInquiryService, impl gov.state.nextgen.ejb.business.services.stars.ParticipationStatusInquiryPortTypeImpl (the 'stars' package is what identifies the partner)

outbound

v2: SOAP over HTTPS via the GTA webMethods ESB (GAIES_STARS.wsProvider.IRNDetailsInquiry_WSD; host redacted). v1: direct ASMX (.NET) endpoint

WSDL 1.1; child-support domain payload — CaseInfo/NCPInfo/CPInfo/ChildInfo/AccountInfo/PaymentInfo/CheckInfo/AgentInfo, ArrearsBalance, AFDCArrearsPresent, ArrearsSOA, CurrentSOA, MedicaidSupport, insurance policy fields

real-time inquiry

worker-portal/IN/ejbModule/META-INF/wsdl/StarsV2.wsdl:242 (service GAIES_STARS.wsProvider.IRNDetailsInquiry_WSD), :222 (portType IRNDetailsInquiry_WSD_PortType), :223 (operation IRNDetailsInquiry); legacy worker-portal/IN/ejbModule/META-INF/wsdl/stars_v1.wsdl:240 (service GAGatewayIRNDetails), portTypes at :202 (GAGatewayIRNDetailsSoap), :208 (…HttpGet), :209 (…HttpPost), operation GetStarsCaseInfo at :203/:212/:224. Client stub worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/starscs/GAIES_STARSWsProviderIRNDetailsInquiry_WSDStub.java. Config key STARS_CS_SERVICE_URL in IEApp_Properties/Local/Application.properties

bidirectional

SOAP via webMethods ESB (IRN details inquiry; Gateway also exposes ParticipationStatusInquiryService) + batch file

WSDL provider path GAIES_STARS.wsProvider.IRNDetailsInquiry_WSD/IRNDetailsInquiry_WSD_Port; BeanIO fixed-length stars-rcv-mapping.xml (3/29/136, streams StarsCaseChangeRcvStream and StarsIESChgRcStream), StarsRcv.xml (1/45/4168, stream StarsRespMlyFile), stars-new-ref-mapping.xml (1/96/2162), stars-merge-snd-apref-mapping.xml (2/192/2162), stars-merge-snd-changes-mapping.xml (2/19/312)

real-time SOAP; daily (IN-RCCHG-DLY, IN-RCCHGSPL-DLY, IN-SCCHG-DLY, IN-SCCHGMRG-DLY, EM-ESTARIN-DLY, EM-ESTAROT-DLY, EM-RCSTRFL-DLY, EM-SNSTRFL-DLY, EM-STRSTBO-DLY); monthly (IN-STARSPRCS-MLY, IN-STARSRESP-MLY, IN-STARSRESPHIS-MLY, IN-STARSTRIG-MLY)

worker-portal/IEApp_Properties/Local/Application.properties:619-623 (comment '#STARS CR - 106604', STARS_CS_TIME_SWITCH, STARS_CS_XML_SWITCH, STARS_CS_LOG_SWITCH, STARS_CS_SERVICE_URL); worker-portal/IEApp_Properties/local_batch/Application.properties:216-219; worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:57-60 (ParticipationStatusInquiryService, impl package …​services.stars); worker-portal/BATCH/IN/src/resource-mapping/stars-.xml, StarsRcv.xml; worker-portal/BATCH/CV_INFORM/src/META-INF/batch-jobs/EM-*STAR.xml

bidirectional

batch file over SFTP via MFT; plus SOAP (an IES-hosted provider and a .NET ASMX partner service)

flat data file; WSDL + XSD

daily (batch); real-time for the inquiry ops

Batch: worker-portal/IN/webMethods/'[secret-bearing path withheld]':3105 (IES_$TARS_OUTBOUND_DAILY_CASE_CHANGES_FILE, glob InSendCaseChangeStars), :3881 (IES_$TARS_OUTBOUND_DAILY_CASE_REFERRAL_FILE, glob InSndReferralToStars); inbound EMPI_Inbound:1 ($TARS_EMPI_INBOUND_DAILY_File, glob STARS_IN_FILE). Services: worker-portal/IN/ejbModule/META-INF/wsdl/StarsV2.wsdl (op IRNDetailsInquiry, address https://<HOST>/ws/GAIES_STARS.wsProvider.IRNDetailsInquiry_WSD/…) and stars_v1.wsdl (tns http://tempuri.org/, service GAGatewayIRNDetails, op GetStarsCaseInfo, .asmx, with HttpGet/HttpPost portTypes in addition to SOAP). Canonical header: interfaceCode=STARS, 'WEBSERVICE CALL FROM STARS'

bidirectional

SOAP

WSDL+XSD

real-time

worker-portal/IN/webMethods/GAIES_STARS_v2.zip → ns/GAIES_STARS/services/participationStatusInquiry, ns/GAIES_STARS/wsConsumer/participationStatusInquiry_/connectors/participationStatusInquiry_PortType_participationStatusInquiry, ns/GAIES_STARS/wsProvider/participationStatusInquiry; registry row 'STARS_participationStatusInquiry' in worker-portal/IN/webMethods/GAIES_STARS_sql_v1.txt

bidirectional

SOAP, THREE distinct endpoint styles: (a) JAX-WS ParticipationStatusInquiryService; (b) GAIES_STARS.wsProvider.IRNDetailsInquiry_WSD over GTA ESB :6410 (namespace [host withheld] (c) a legacy .NET ASMX endpoint path /StarsBusinessLayer2010BS/WebServices/GAGatewayIRNDetails.asmx

WSDL+XSD; two contract versions checked in (stars_v1.wsdl, StarsV2.wsdl)

real-time inquiry

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/stars/ParticipationStatusInquiryService.java:17; ejbModule/…​/starscs/GAIES_STARSWsProviderIRNDetailsInquiry_WSDStub.java; ejbModule/META-INF/wsdl/{stars_v1.wsdl,StarsV2.wsdl,ParticipationStatus.wsdl}; common/src/gov/state/nextgen/in/bo/{InStarsCSResponseBo,INStarsCSServiceBo,IChildSupportUnearnedIncome,INUnearnedBudgettingBO}.java; ejbModule/…​/in/{INStarsChildSupportSessionEJBBean,INDCSSessionEJBBean}.java; common/src/gov/state/nextgen/in/bo/INDCSResponseBO.java; webMethods/GAIES_STARS_{v1,v2,12_09062015}.zip + GAIES_STARS_sql_v{1,2}

bidirectional

batch file; a receive path handled by a reader outside the in.batch namespace (gov.state.nextgen.stars.batch.*)

fixed-width; stars-rcv-mapping.xml, StarsRcv.xml, stars-merge-snd-apref-mapping.xml, stars-merge-snd-changes-mapping.xml, stars-new-ref-mapping.xml

daily (changes, approvals) + monthly (process, response, response-history, trigger)

jobs …​/batch-jobs/{IN-RCCHG-DLY,IN-RCCHGSPL-DLY,IN-SCCHG-DLY,IN-SCCHGMRG-DLY,IN-SDAPR-DLY,IN-SDAPRMRG-DLY,IN-STARSPRCS-MLY,IN-STARSRESP-MLY,IN-STARSRESPHIS-MLY,IN-STARSTRIG-MLY}.xml; IN-STARSRESP-MLY.xml uses gov.state.nextgen.stars.batch.chunk.{reader,processor,writer}.StarsStagingRcv* with value="resource-mapping/StarsRcv.xml" and streamName StarsRespMlyFile; javadoc in gov/state/nextgen/in/batch/stars/: 'Converts STARS Address type to IES address Type format'

bidirectional

batch file (fixed-width) via webMethods

fixed-width; outbound APR/new-referral (StarsAprSndRecord, 96 fields; merged IES+SUCCESS variants 192 fields) and case-changes (StarsCsChangesSendRecord); inbound case-change streams (StarsCaseChangeRcvStream, StarsIESChgRcStream, StarsSuccessChgRcStream) and monthly response file (StarsRespMlyFile, 45 fields)

daily sends (IN-SDAPR-DLY, IN-SDAPRMRG-DLY, IN-SCCHG-DLY, IN-SCCHGMRG-DLY); daily receives (IN-RCCHG-DLY, IN-RCCHGSPL-DLY); monthly response + processing (IN-STARSRESP-MLY, IN-STARSRESPHIS-MLY, IN-STARSPRCS-MLY, IN-STARSTRIG-MLY)

worker-portal/BATCH/IN/src/resource-mapping/stars-new-ref-mapping.xml:4-6 (StarsIESAPRSndStream); stars-merge-snd-apref-mapping.xml:4,142 (IES + SUCCESS APR streams); stars-merge-snd-changes-mapping.xml:4,21; stars-rcv-mapping.xml:4,21,39; StarsRcv.xml:6-7 (StarsRespMlyFile → gov.state.nextgen.in.batch.stars.util.StarsRcv); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/stars/util/StarsChangeConstants.java:9-31 (inbound trigger/alert codes IN046, BV001, INT032/033/034; outbound change types AN/GS/AD/GP/RC/MA/GA/NM/CC) and StarsConstants.java:34-49 (alerts INT101-INT123), :5-33 (exception codes MFM/DNV/CTI/CIW/CEW/NIG/CII…​); worker-portal/BATCH/IN/src/gov/state/nextgen/stars/batch/ (monthly response pipeline: StarsStagingRcv*, StarsRespRcvParent/Child/Custodian/Exception/Trigger readers-processors-writers, StarsRespProcessAlerts*); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/util/InStarsRespHisLoadBatchlet.java, InStarsRespProcessDuplicatesBatchlet.java, InStarsRespProcessCustodianDuplicatesBatchlet.java, InStarsRespProcessDuplicateAlertsBatchlet.java; webMethods worker-portal/IN/webMethods/GAIES_STARS_v2.zip

bidirectional

batch file over SFTP; inbound and outbound batchlets with archive step

flat text, glob-matched name EMPI_OUT_CLIENT*.txt (wildcard — multiple parts per run)

daily (in/out, receive, send); on-request variants

worker-portal/BATCH/CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/batchlet/StarsOutboundFileBatchlet.java:107 (fileName="EMPI_OUT_CLIENT*.txt"), :226 (commented transfer line documenting the source path /data/infa_shared/TgtFiles/STARS/outbound/data/ and the local target /shared_data/GA_IES_BATCH/BatchFiles/CV/outbound/data/). CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/batchlet/StarsInboundFileBatchlet.java:172. Jobs: CV_INFORM/src/META-INF/batch-jobs/EM-ESTARIN-DLY.xml, EM-ESTAROT-DLY.xml, EM-ISTRFLE-ONR.xml, EM-ISTRSVS-ONR.xml, EM-OSTARFL-ONR.xml, EM-RCSTRFL-DLY.xml, EM-SNSTRFL-DLY.xml, EM-STRSTBO-DLY.xml.

Mock-relevant facts
  • Gateway-as-client for both generations; v1 is the superseded .NET-hosted contract (targetNamespace http://tempuri.org/ — the unmodified Visual Studio default, and it additionally exposes HttpGet/HttpPost bindings, i.e. the case-detail query is reachable as a plain GET with SSN/IRN in the query string). v2’s targetNamespace (StarsV2.wsdl:1) embeds an internal webMethods hostname and it retains http://tempuri.org/ at :3 for the payload. Only v2 should be modelled in canopy; v1 is a decommission/(security)review item.

  • TWO GENERATIONS COEXIST — v1 is a .NET ASMX service under http://tempuri.org/ exposing SOAP plus HttpGet and HttpPost bindings (so a mock may be called with query-string GETs, not only SOAP envelopes), while v2 is a webMethods-hosted provider. Direction per the canonical header is 'FROM STARS', i.e. STARS initiates the real-time calls into IES, while IES pushes case changes and referrals to STARS by daily file. The $ in the partner prefix is literal in the action names.

  • CREDENTIAL/HOST WARNING — StarsOutboundFileBatchlet.java:226 contains a commented-out transfer command embedding an internal IP address and a service account name; OutboundFileMoveBatchlet.java:214 has the same pattern. Not reproduced here; flagged so the canopy mock authors avoid copying those lines. Files originate from an Informatica share (infa_shared/TgtFiles), i.e. STARS delivery is mediated by Informatica ETL rather than a direct partner connection.

  • Gateway-as-server; the inverse direction of the outbound STARS IRN-details inquiry (separate finding). targetNamespace 'participationStatusInquiry' (bare string). Note a distinct outbound key GAMMIS_PARTICIPATION_SERVICE_URL also exists in config (Georgia Medicaid MMIS) — different partner, same concept; do not conflate.

  • Two upstream flavors are carried in parallel — 'IES' and legacy 'SUCCESS' — with separate streams in the same mapping file; a canopy mock needs both. The monthly response fans out into parent/child/custodian/exception/trigger/alert sub-pipelines under gov/state/nextgen/stars/batch.

  • Also reached over MFT: InSendCaseChangeStars and InSndReferralToStars filters in [secret-bearing path withheld]:3130 and :3906. STARS is additionally an EMPI merge-alert consumer (see EMPI entry).

  • Acronym NOT decoded. STARS is the only partner whose batch classes live under a top-level gov.state.nextgen.stars package rather than in.batch — suggests it was integrated from a different codebase.

  • StarsRcv.xml at 4168 chars is the second-widest record layout. Partner full name is not expanded anywhere in the config; recorded as the literal token 'STARS'.

  • The ASMX location is the tell that STARS is a .NET system behind the ESB. v1/v2 WSDL coexistence means canopy should mock v2 and treat v1 as retired.

US Treasury — TOP / GA DOR DSO (debt offset)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

bidirectional

batch file via webMethods ActiveTransfer MFT

fixed-width with header/detail/trailer record classes (TOPCollectionsSndHeaderRecord, TopCollectionRcvTrailerRecord)

weekly for certification/collections/address-match/missing-address/unprocessable; monthly for address in/out; quarterly for reconciliation

MFT events TOP_IES_INBOUND_WEEKLY_COLLECTIONS_FILE, TOP_IES_INBOUND_WEEKLY_ADDRESS_MATCH_FILE, TOP_IES_INBOUND_WEEKLY_MISSING_ADRESSES_FILE, TOP_IES_INBOUND_WEEKLY_UNPROCESSABLE_FILE, TOP_IES_INBOUND_QUARTERLY_RECONCILIATION_FILE in [secret-bearing path withheld]; job defs worker-portal/BATCH/BV/src/META-INF/batch-jobs/ — BR-TOPCERT-WLY.xml, BR-TOPCOLL-WLY.xml, BR-TOPREF-WLY.xml, BR-TOPADDRIN-MLY.xml, BR-TOPADDROUT-MLY.xml, BR-TOPRECON-QLY.xml, BR-TOPUN-WLY.xml, BR-TOPMISADDR-WLY.xml, BR-FTOPNOTICE-WLY.xml; record classes worker-portal/BATCH/BV/src/gov/state/nextgen/bv/batch/util/TOPCollectionsSndHeaderRecord.java:10 and TopCollectionRcvTrailerRecord.java:6

bidirectional

batch file

fixed-width — DSOGenericInterceptRecord / DSOGenericInterceptRecordVO

weekly send + merge (BR-DSOSND-WLY, BR-DSOMRG-WLY); daily tax intercept + notices (BR-DSOTAX-DLY, BR-DSONOT-DLY)

worker-portal/BATCH/BV/src/gov/state/nextgen/bv/batch/bo/impl/DSOTaxInterceptRcvBOImpl.java:214; record classes worker-portal/BATCH/BV/src/gov/state/nextgen/bv/batch/util/DSOGenericInterceptRecord.java:331 and DSOGenericInterceptRecordVO.java:42; program codes at BvConstants.java:235-236 (DSO_PROGRAM_CD_TF=40021 TANF, DSO_PROGRAM_CD_FS=40023 SNAP); job defs BR-DSOSND-WLY.xml, BR-DSOTAX-DLY.xml, BR-DSOMRG-WLY.xml, BR-DSONOT-DLY.xml in worker-portal/BATCH/BV/src/META-INF/batch-jobs/

bidirectional

batch file

BeanIO fixed-length family: TOPCollectionSend.xml (5 records / 68 fields / 200-char), TopCollectionReceive.xml (2/43/250), TOPAddressMatchSend.xml (2/21/150), TOPAddressMatchSplit.xml (1/22/215), TOPNonValidAddressMapping.xml (1/9/150), TOPReconciliationMapping.xml (1/19/200), TOPUnprocessedClaimMapping.xml (4/76/221) + split variant (10/160/221), DSOGenericTaxIntercept.xml (6/246/361)

weekly (BR-TOPCERT-WLY, BR-TOPCOLL-WLY, BR-TOPREF-WLY, BR-TOPUN-WLY, BR-TOPMISADDR-WLY, BR-DSOSND-WLY, BR-DSOMRG-WLY), monthly (BR-TOPADDRIN-MLY, BR-TOPADDROUT-MLY), quarterly (BR-TOPRECON-QLY), daily (BR-DSOTAX-DLY, BR-DSONOT-DLY, BR-TOPCERTTRG-DLY)

worker-portal/BATCH/BV/src/resource-mapping/ (11 mapping files); worker-portal/BATCH/BV/src/META-INF/batch-jobs/ (29 BR-* job XMLs); worker-portal/BATCH/BV/src/META-INF/batch-jobs/BR-TOPCOLLSPT-WLY.xml and BR-TOPUNSPT-WLY.xml (only BV jobs referencing PGP/FTP)

bidirectional

batch file over SFTP via MFT

flat data file (fixed-width)

weekly (collections, missing addresses, address match, unprocessable) + quarterly (reconciliation)

[secret-bearing path withheld]:1 (TOP_IES_INBOUND_QUARTERLY_RECONCILIATION_FILE), :194 (TOP_IES_INBOUND_WEEKLY_COLLECTIONS_FILE), :387 (TOP_IES_INBOUND_WEEKLY_MISSING_ADRESSES_FILE), :1161 (TOP_IES_INBOUND_WEEKLY_ADDRESS_MATCH_FILE), :2126 (TOP_IES_INBOUND_WEEKLY_UNPROCESSABLE_FILE); outbound at '[secret-bearing path withheld]':4269 (IES_TOP_OUTBOUND_WEEKLY_ADDRESS_MATCH_FILE), :7757 (IES_TOP_OUTBOUND_WEEKLY_COLLECTIONS_FILE)

outbound

batch file over SFTP via MFT

flat data file

weekly

worker-portal/IN/webMethods/'[secret-bearing path withheld]':3299 (IES_DSO_OUTBOUND_WEEKLY_CLAIMS_FILE)

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file; layouts not in this subsurface

weekly (address match, collections, missing addresses, unprocessable), quarterly (reconciliation)

worker-portal/IN/webMethods/[secret-bearing path withheld] → IES_TOP_OUTBOUND_WEEKLY_ADDRESS_MATCH_FILE (BrSndWlyTopAddr:4293), IES_TOP_OUTBOUND_WEEKLY_COLLECTIONS_FILE (BrSndWlyTopCol:7781); [secret-bearing path withheld] → TOP_IES_INBOUND_WEEKLY_{ADDRESS_MATCH,COLLECTIONS,MISSING_ADRESSES,UNPROCESSABLE}_FILE and TOP_IES_INBOUND_QUARTERLY_RECONCILIATION_FILE (BrRecWlyTopAddr, BrRecWlyTopCol, BrRecWlyTopMissAddr, BrRecWlyTopUnprocDat, BrRecQlyTopReconDat)

bidirectional

batch file (SFTP), PGP-encrypted; job param pgpOverride toggles decrypt/encrypt

fixed-width, BeanIO 2012/03 mapping XML (format="fixedlength", recordTerminator CRLF); Header(T1)/Detail/Trailer

weekly (certification, collections, unprocessed claims, refunds); monthly (address match in/out); quarterly (reconciliation); daily (certification triggers)

worker-portal/BATCH/BV/src/resource-mapping/TOPCollectionSend.xml:6-40 (stream TOPCollectionSendStream, fixedlength; header identifier literal "T1" pos 5 len 4, batchControlNum pos 9 len 8, filler to pos 200 = 200-byte record; detail agencyId literal "28" pos 0 len 8, agencySiteId literal "GA" pos 8 len 8, debtNumber pos 16 len 18, debtorTaxIdNumber pos 36 len 9 zero-padded right, debtAmt pos 134 len 12, topTraceNumber pos 150 len 10). Layout family: TOPAddressMatchSend.xml, TOPAddressMatchSplit.xml, TopCollectionReceive.xml, TOPCollectionSendMerge.xml, TopCollectionSplitReceive.xml, TOPNonValidAddressMapping.xml, TOPReconciliationMapping.xml, TOPUnprocessedClaimMapping.xml, TOPUnprocessedClaimSplitMapping.xml (all under BV/src/resource-mapping/). Jobs: BV/src/META-INF/batch-jobs/BR-TOPCERT-WLY.xml, BR-TOPCERTMRG-WLY.xml, BR-TOPCERTTRG-DLY.xml, BR-TOPCERTTRG-MLY.xml, BR-TOPCOLL-WLY.xml, BR-TOPCOLLP-WLY.xml, BR-TOPCOLLSPT-WLY.xml, BR-TOPADDRIN-MLY.xml, BR-TOPADDRINSPT-MLY.xml, BR-TOPADDROUT-MLY.xml, BR-TOPADDROUTMRG-MLY.xml, BR-TOPRECON-QLY.xml, BR-TOPRECONSPT-QLY.xml, BR-TOPUN-WLY.xml, BR-TOPUNSPT-WLY.xml, BR-TOPMISADDR-WLY.xml, BR-TOPMISADDRSPT-WLY.xml, BR-TOPREF-WLY.xml, BR-FTOPNOTICE-WLY.xml. Job param block: BR-TOPCOLLSPT-WLY.xml:7-18 (filePath, successFilePath, iesFilePath, countChkOvrd, singlefileChkOvrd, pgpOverride).

bidirectional

batch file (SFTP)

fixed-width BeanIO; 6 distinct streams in one mapping file, single record class DSOGenericInterceptRecord reused across send/receive/notification variants

daily (tax + notification), weekly (send, merge)

worker-portal/BATCH/BV/src/resource-mapping/DSOGenericTaxIntercept.xml:5 (DSOTaxInterceptSendStream), :51 (DSOTaxInterceptSendSuccessStream), :97 (DSOTaxInterceptRcvNotificationStream), :143 (DSOTaxInterceptRcvTaxStream), :189 (DSORcvSptStream), :234 (DSORcvSuccessSptStream) — 278 lines total. Jobs: BV/src/META-INF/batch-jobs/BR-DSOTAX-DLY.xml, BR-DSOTAXSPT-DLY.xml, BR-DSOSND-WLY.xml, BR-DSOMRG-WLY.xml (:54-55 binds DSOTaxInterceptSendStream to resource-mapping/DSOGenericTaxIntercept.xml), BR-DSONOT-DLY.xml, BR-DSONOTSPT-DLY.xml:76. BOs: BV/src/gov/state/nextgen/bv/batch/bo/DSOTaxEligSndBO.java, DSOTaxInterceptRcvBO.java, DSOSptRcvBO.java.

n/a

n/a

n/a

n/a

worker-portal/BATCH/scripts — contains exactly one file: scripts/XML_COMP/setClasspath.ksh

Mock-relevant facts
  • Every TOP job runs a 3-gate precondition chain before processing: FileExistenceCheckPatternMatchNGSingleFileExistenceCheck → (merge/archive), each with an override flag — a mock must reproduce the gate semantics, not just the payload. Critical dual-source fact: *SPT/*MRG variants take BOTH an iesFilePath and a successFilePath and merge them into one outbound TOP file — Gateway (IES) and the legacy SUCCESS system are both debt sources feeding one certification stream. agencyId literal "28" + agencySiteId literal "GA" are the constant agency identifiers on every detail record.

  • RICHEST MULTI-FILE RESPONSE FAN-OUT IN THE INVENTORY: one outbound ADDRESS_MATCH request yields up to four distinct inbound files (address match, missing addresses, unprocessable, collections) plus a quarterly reconciliation — five independently-scheduled inbound actions, each its own glob. A mock must be able to emit a set of response files of differing types from a single request, on independent timelines, including the negative-path UNPROCESSABLE file. No ack file ties any of them to the request.

  • Same IES-vs-SUCCESS dual-source split as TOP: the Spt/Success stream variants exist specifically to read legacy-system records. Six streams share one record class, so the mock needs stream-name-keyed layout selection rather than one canonical DSO record.

  • Lives in the BV (Benefit recoVery / claims) module, NOT IN — other agents attributing surfaces should look in worker-portal/BATCH/BV. 71 TOPADDR + 58 TOPCOLL + 35 TOPREF + 30 FTOP + 12 TOPRECON marker hits.

  • Distinct -SPT suffix pattern = 'split' post-processing jobs that re-read a partner file through a second stream; -MRG = merge. Mocks need both the whole-file and split-file shapes.

  • 176 DSOTAX + 77 DSOSEND hits. Not on the assigned marker list but discovered adjacent to TOP; the state-level twin of TOP. Program codes 40021/40023 are a concrete mock fixture.

  • 'MISSING_ADRESSES' misspelling is in the action name. The Br* filename prefix (vs In*) marks the benefit-recovery family of transfers.

  • One-way weekly outbound, single action, no response leg. Sits alongside TOP as the second recovery-related outbound path.

  • Classpath setup only; no interface content.

USCIS SAVE / VLP (immigration status)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

bidirectional (initial/additional/third-step verification submissions plus resolution retrieval and case-queue polling)

SOAP over HTTPS via the GTA webMethods ESB (GAIES_SAVE.wsProvider.SAVE_alienVerification; endpoint host redacted)

WSDL 1.1 + large inline XSD (1752 lines); SAVE domain vocabulary — alien number, I-94 number, passport number, receipt number, COA code, LPR status date, parole expiry, sponsorship data, employment-authorisation data, G-845 major/minor status codes

real-time for initial verification; asynchronous/polled for institutional (2nd/3rd-step) resolutions — getNextResolvedCase is a queue drain, implying a scheduled poll

'worker-portal/IN/Providers WSDL/GAIES_SAVE_wsProvider_SAVE_alienVerification_Port_1.wsdl':1748 (service GAIES_SAVE.wsProvider.SAVE_alienVerification), :1587 (portType SAVE_alienVerification_PortType), operations :1588 ackReceiptOfResolution, :1592 redisplayG845, :1596 getCaseDetails, :1600 reVerifyAgency3InitVerif, :1604 closeCase, :1608 agency3SubmitAdditVerif, :1612 getNextResolvedCase, :1616 agency3SubmitThirdVerif, :1620 submitAgency3DhsResub, :1624 retrieveAdditResolution, :1628 retrieveThirdResolution, :1632 agency3InitVerif. Config key SAVE_SERVICE_URL in IEApp_Properties/Local/Application.properties

bidirectional

SOAP (real-time) via webMethods provider GAIES_SAVE.wsProvider.SAVE_alienVerification; plus a daily batch job

WSDL+XSD, 12 operations: agency3InitVerif, agency3SubmitAdditVerif, agency3SubmitThirdVerif, submitAgency3DhsResub, reVerifyAgency3InitVerif, retrieveAdditResolution, retrieveThirdResolution, getCaseDetails, getNextResolvedCase, ackReceiptOfResolution, redisplayG845, closeCase

real-time for the 3-step verification; daily batch job IN-SSAVE-DLY / IN-ISAVE-DLY

worker-portal/IN/Providers WSDL/GAIES_SAVE_wsProvider_SAVE_alienVerification_Port_1.wsdl:1587-1632 (portType SAVE_alienVerification_PortType and all 12 operations); generated client customer-portal/bridgesClient/[vendor-host-derived package withheld]; batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/save/ (22 files); jobs IN-SSAVE-DLY.xml, IN-ISAVE-DLY.xml; webMethods packages GAIES_SAVE*.zip in worker-portal/IN/webMethods/

outbound request / inbound response

SOAP via webMethods ESB; plus a daily initiation batch

WSDL+XSD; provider path GAIES_SAVE.wsProvider.SAVE_alienVerification/…​_Port

real-time + daily initiation (IN-ISAVE-DLY, IN-SSAVE-DLY)

worker-portal/IEApp_Properties/Local/Application.properties:290-296 (SAVE_SERVICE_URL, SAVE_NAME_SPACE, SAVE_SERVICE_NAME, SAVE_TIME_SWITCH, SAVE_XML_SWITCH, SAVE_LOG_SWITCH); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-ISAVE-DLY.xml; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SSAVE-DLY.xml

outbound

SOAP via webMethods GAIES_SAVE.wsProvider:SAVE_alienVerification

WSDL-generated JAXB. 15 operations on SAVEAlienVerificationPortType: cpsVerifyConnection, agency3InitVerif, reVerifyAgency3InitVerif, agency3SubmitAdditVerif, agency3SubmitAdditionalData, agency3SubmitThirdVerif, submitAgency3DhsResub, retrieveAdditResolution, retrieveThirdResolution, getNextResolvedCase, getCaseDetails, ackReceiptOfResolution, redisplayG845, closeCase, setUserPassword. Shapes: Case34, CaseList, Benefit34, BenefitCodes, InitiBenefitList, CommonDocEmpAuthData(34), CommonDocSponsorshipData(34), plus per-operation Input/Output pairs and a repeated Fault/Code/Reasons/SubCodes/Detail fault family (14 numbered variants)

real-time initiation; asynchronous multi-step resolution (getNextResolvedCase / ackReceiptOfResolution imply a polling or queue-drain pattern for 2nd/3rd-step verifications)

customer-portal/bridgesClient/[vendor-host-derived package withheld]:35-277 (all 15 @WebMethod actions). Service: same dir GAIESSAVEWsProviderSAVEAlienVerification.java:73 (QName [host withheld] port GAIES_SAVE_wsProvider_SAVE_alienVerification_Port). ~150 generated JAXB classes in that package.

bidirectional

SOAP over HTTPS — WCF service consumed via webMethods wsConsumer; IES also exposes a 12-op provider facade

WSDL + XSD (WCF basicWCFBinding and WSHttpBinding, SOAP 1.1 and 1.2)

real-time initiation + asynchronous multi-day resolution retrieved by POLLING

worker-portal/IN/webMethods/GAIES_SAVE_Full_v1.zip → ns/GAIES_SAVE/wsConsumer/ws_SAVE/node.ndf: definitionName=AgencyWebServiceV35, portType IAgencyWebServiceV35, tns [host withheld] portAddress /basic, 19 operations (AckReceiptOfResolution, Agency3ConfirmPhoto, Agency3InitVerif, Agency3SubmitAdditVerif, Agency3SubmitAdditionalData, Agency3SubmitThirdVerif, CloseCase, CpsVerifyConnection, GetAgencyBenefitsList, GetAgencyDocumentTypeList, GetCaseDetails, GetCountryOfIssuanceList, GetNextResolvedCase, ReDisplayG845, ReVerifyAgency3InitVerif, RetrieveAdditResolution, RetrieveThirdResolution, SetUserPassword, SubmitAgency3DhsResub); a V36 variant is referenced by connectors IAgencyWebServiceV36_*. Provider facade: worker-portal/IN/Providers WSDL/GAIES_SAVE_wsProvider_SAVE_alienVerification_Port_1.wsdl (12 ops, document/literal, MEP input+output)

outbound

SOAP

WSDL+XSD — webMethods IS wsConsumer ws_SAVE bound to SAVE IAgencyWebServiceV35/V36; local wsProvider SAVE_alienVerification re-exposes it to IES

real-time (request/response per case)

worker-portal/IN/webMethods/GAIES_SAVEv15_01132016.zip → ns/GAIES_SAVE/wsConsumer/ws_SAVE_/connectors/IAgencyWebServiceV36_* (18 connectors) and ns/GAIES_SAVE/services/* ; provider contract at worker-portal/IN/Providers WSDL/GAIES_SAVE_wsProvider_SAVE_alienVerification_Port_1.wsdl:1587-1636 (portType SAVE_alienVerification_PortType), :1748-1750 (service/port)

outbound

SOAP via webMethods, IS package GAIES_SAVE, service wsProvider.SAVE_alienVerification (Axis2 stub)

WSDL+XSD

real-time initial verification (SAVE’s additional-verification steps are async by design)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/save/GAIES_SAVEWsProviderSAVE_alienVerificationStub.java; 'worker-portal/IN/Providers WSDL/GAIES_SAVE_wsProvider_SAVE_alienVerification_Port_1.wsdl' (one of only two checked-in provider WSDLs); ejbModule/…​/services/save/{agencywebservice,uscis}/; common/src/gov/state/nextgen/in/save/{bo,util}/; common/src/gov/state/nextgen/in/bo/INSaveRequestBOInitutil.java; webMethods/GAIES_SAVE*.zip (8 versions)

bidirectional

batch file (no BeanIO mapping referenced from the job XMLs)

not determined from this surface

daily

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-ISAVE-DLY,IN-SSAVE-DLY}.xml (package gov.state.nextgen.in.batch.save); component scan at worker-portal/BATCH/IN/src/META-INF/batch.xml:41

bidirectional

SOAP web service through webMethods (generated JAX-WS/Axis client stubs; WSDL provider package in the repo)

WSDL/XSD-defined SOAP messages — verification initiation plus additional-verification (step 2 / 'RetrieveAdditResolution') and third-step ('RetrieveThirdResolution') resolution responses; G-845 major reason codes enumerated locally

daily batch legs — IN-ISAVE-DLY (initiate) and IN-SSAVE-DLY (step 2/3 resolution retrieval); underlying service is request/response real-time

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/save/bo/impl/InDlySaveBoImpl.java:16-20 (gov.state.nextgen.ejb.business.services.save.uscis.* stubs, Case34, RetrieveAdditResolutionResp37, RetrieveThirdResolutionResp37), :33-37 (SaveCloseCaseBO, SaveNextResolveCaseBO, SaveRetriveAdditResolutionBO, SaveRetriveThirdResolutionBO); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/save/util/SaveBatchConstants.java:10-16 (INT028/INT029 triggers, SAVE_VERSION, save id); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/save/util/SaveG845MajorCodes.java; WSDL: worker-portal/IN/Providers WSDL/GAIES_SAVE_wsProvider_SAVE_alienVerification_Port_1.wsdl; webMethods packages worker-portal/IN/webMethods/GAIES_SAVE*.zip

Mock-relevant facts
  • THE ONLY GENUINELY ASYNCHRONOUS PARTNER PROTOCOL IN THE ESTATE, and the one mock that needs real state. Sequence: Agency3InitVerif (step 1, synchronous, may return instant verification or 'institute additional verification') → Agency3SubmitAdditVerif (step 2) → Agency3SubmitThirdVerif (step 3) → USCIS works the case out-of-band for hours/days → IES POLLS with GetNextResolvedCase (queue-drain semantics: returns the next resolved case, or nothing) → RetrieveAdditResolution / RetrieveThirdResolution to fetch the outcome → AckReceiptOfResolution to remove it from the queue → CloseCase. THE ACK IS EXPLICIT AND APPLICATION-LEVEL — the only ack in the entire inventory. A mock must implement a per-case state machine plus a resolved-case queue whose head is only removed on AckReceiptOfResolution (so a non-acking client re-reads the same case). CpsVerifyConnection is a liveness probe; SetUserPassword implies self-service credential rotation. No transport retry.

  • 12 provider operations: ackReceiptOfResolution, redisplayG845, getCaseDetails, reVerifyAgency3InitVerif, closeCase, agency3SubmitAdditVerif, getNextResolvedCase, agency3SubmitThirdVerif, submitAgency3DhsResub, retrieveAdditResolution, retrieveThirdResolution, agency3InitVerif. Consumer side adds Agency3ConfirmPhoto, AgencyDuplicateCaseCheck, CpsVerifyConnection, GetAgencyBenefitsList, GetAgencyDocumentTypeList, GetCountryOfIssuanceList, SetUserPassword. Message shapes are the V34/V35/V36 tns:*Resp34 doc types (Case34, Benefit34, Document34, SponsorshipData34, EmpAuthData34, AdditVeriResp34, Agency3InitVerResp34, GtCseDetailsResp35). Three-step G-845 verification flow (initial / additional / third-step) is the load-bearing state machine to mock. Older zip GAIES_SAVE_Full_v1.zip pins V35; v15 pins V36 — version drift matters for mocks.

  • Gateway-as-client. targetNamespace 'nsSAVE_alienVerification'. 12 operations — the richest state machine in the whole surface: initial verify → additional (2nd step) → third step → DHS resubmission → resolution retrieval → acknowledge → close. A canopy mock MUST model this as a stateful case lifecycle with a pollable resolved-case queue, not as 12 independent request/response stubs. 'redisplayG845' returns the DHS Form G-845 rendering. Lives in the space-containing directory 'IN/Providers WSDL'.

  • NO consumer in customer-portal — grep for SAVEAlienVerification / GAIESSAVEWsProvider across all customer-portal Java hits only the generated package itself. The stubs ship in bridgesClient but SAVE is driven from worker-portal. Contract is still fully usable for a canopy mock. No WSDL file vendored (stubs only).

  • 557 SAVE alien/verification-qualified hits + 330 alienVerification. The redisplayG845 operation confirms the full 3-step (initial/additional/third) SAVE flow including Form G-845 paper fallback. This is the real lawful-presence interface — NOT VLP (see the VLP false-positive finding).

  • Batch side only orchestrates; the actual stubs live in worker-portal/IN/ejbModule (outside my slice). For canopy mocks the WSDL above is the contract of record.

  • DID NOT READ the save package internals — SAVE’s transport (batch vs the usual web-service) is unresolved from the job XML alone.

  • Heaviest version churn in webMethods/ (SAVE11 → SAVEv15) — the contract moved a lot; pick the latest zip’s shape.

EMPI (GA enterprise master person index)

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1 + inline XSD; EMPI individual block payload (IndividualBlock, IDList, RaceListBlock, SystemListBlock, MergeResponseBlock, UpdateResponseBlock)

real-time / event-driven (fired on EMPI merge or demographic update)

worker-portal/IEWebApp/WebContent/WEB-INF/wsdl/GenerateAlertTaskService.wsdl:136 (service GenerateAlertTaskService), :116 (portType GenerateAlertTaskService_PortType), :117 (operation generateAlertTaskService); registered in worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml (endpoint GenerateAlertTaskService, url-pattern=/ws/GenerateAlertTaskService, impl GenerateAlertTaskServicePortTypeImpl)

outbound

SOAP 1.1 and SOAP 1.2 over HTTP/HTTPS via the GTA webMethods ESB (GAIES_EMPI.wsProvider.*; endpoint host redacted)

WSDL 1.1 + XSD; payload namespaces http://webservice.client.mdm.nextgen.state.gov and http://bo.client.mdm.nextgen.state.gov/xsd

real-time (person search / create / update / merge during intake and case maintenance)

All under worker-portal/IEWebApp/WebContent/wsdl/EMPIServiceIntegration/ — createClientService.wsdl:282 service GAIES_EMPI.wsProvider.createClientService, :238 portType, :239 op createClientService; detailSearchClientService.wsdl:261/:241/:242; matchClientService.wsdl:236/:192/:193; mergeClientService.wsdl:172/:128/:129; searchClientService.wsdl:217/:173/:174; updateClientService.wsdl:284/:240/:241. Config keys MATCH_CLIENT_SERVICE_URL, CREATE_CLENT_SERVICE_URL [sic], UPDATE_CLIENT_SERVICE_URL, SEARCH_CLIENT_SERVICE_URL, MERGE_CLIENT_SERVICE_URL, PERSON_SEARCH_CLIENT_SERVICE_URL, PERSON_DETAIL_SEARCH_CLIENT_SERVICE_URL, EMPI_SUCCESS_INDICATOR_SERVICE_URL in IEApp_Properties/Local/Application.properties

bidirectional

SOAP (real-time), 6 operations; plus inbound MFT events

WSDL+XSD — createClientService, searchClientService, detailSearchClientService, matchClientService, mergeClientService, updateClientService

real-time; plus a daily SVES→EMPI move job (IN-SVSEMPI-DLY)

worker-portal/IEWebApp/WebContent/wsdl/EMPIServiceIntegration/ — createClientService.wsdl, searchClientService.wsdl, detailSearchClientService.wsdl, matchClientService.wsdl, mergeClientService.wsdl, updateClientService.wsdl; customer-portal copy customer-portal/bridgesClient/META-INF/wsdl/GAIES_EMPI_wsProvider_searchClientService_Port.wsdl; MFT worker-portal/IN/webMethods/EMPI_Inbound and [secret-bearing path withheld]; webMethods GAIES_EMPI_v20_01202016.zip; consumers worker-portal/IN/common/src/gov/state/nextgen/in/bo/INSearchClientBO.java, INDetailSearchClientBO.java; batch worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sves/chunk/batchlet/SvesEMPIMoveBatchlet.java

outbound (7 distinct operations)

SOAP, direct to an EMPI service host (not via the ESB)

WSDL+XSD; /EMPI/services/{MatchClientService, CreateClientService, UpdateClientService, SearchClientService, MergeClientService, DetailSearchClientService, CheckForSuccessIndicatorService}

real-time; plus daily ED-EMPI-DLY, IN-SVSEMPI-DLY, CV-LDGEMPI-ONR

worker-portal/IEApp_Properties/Local/Application.properties:153-168 (MATCH_CLIENT_SERVICE_URL, CREATE_CLENT_SERVICE_URL [sic], UPDATE_CLIENT_SERVICE_URL, SEARCH_CLIENT_SERVICE_URL, MERGE_CLIENT_SERVICE_URL, PERSON_SEARCH_CLIENT_SERVICE_URL, PERSON_DETAIL_SEARCH_CLIENT_SERVICE_URL, SEARCH_CLIENT_SERVICE_NAME declared twice at 165 and 167, SEARCH_CLIENT_NAME_SPACE), :175-178 (DETAIL_SEARCH_CONVERSION_* triad), :404 (EMPI_SUCCESS_INDICATOR_SERVICE_URL), :156-157 (SOURCE_SYSTEMS, COUNTY_RESIDENCE_CODE); worker-portal/IEApp_Properties/local_batch/Application.properties:93-95 (EMPI_PROGRAM_PARTICIPATION_* triad); worker-portal/IEApp_Properties/Local/simulation_env.properties:45,56,64 (EMPI_CREATE_CLIENT_SERVICE_<n>, EMPI_INDV_FILE_CLEARANCE)

outbound

SOAP via webMethods GAIES_EMPI.wsProvider.searchClientService

WSDL + XSD across four MDM namespaces (webservice.client.mdm, message.client.mdm/xsd, bo.client.mdm/xsd, common.mdm/xsd). portType searchClientService_PortType, operation searchClientService. Shapes: searchClient/searchClientResponse, ClientSearchInput, ClientSearchOutput, ClientSearchRequest, ClientSearchResponse, ClientList, Address, AddressList, Worker, Error, ErrorList, Message; fault{code{localName}, subCodes{localName}, detail}

real-time, on account/case-link splash flow

WSDL: customer-portal/bridgesClient/META-INF/wsdl/GAIES_EMPI_wsProvider_searchClientService_Port.wsdl:1 (definitions), :3-168 (5 schemas), :169-179 (portType/operation), :189-191 (service). Call: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2414 (callEMPIClientSearch(sSN, clientId)), :2423 (AppConstants.EMPI_WEBSERVICE_URL_KEY). JAXB: bridgesClient/gov/state/nextgen/mdm/client/webservice/ (SearchClient.java, SearchClientResponse.java), /mdm/client/bo/xsd/, /mdm/client/message/xsd/, /mdm/common/xsd/. CONSUMER IN MY SURFACE: accessEJB/ejbModule/gov/state/nextgen/access/business/services/SplashScreenEJBBean.java:815-823 (callEMPIClientSearchWebService), :350, :821. Key: sharedApp/…​/AppConstants.java:4433 = "EMPIWebService"; endpoint framework/properties/config/production_env.properties:276

bidirectional

SOAP over HTTP and HTTPS (SOAP 1.2 ports) + MFT daily file set to $TARS

WSDL + XSD; flat file for the batch legs

real-time for the 6 service ops; daily for the 6 outbound files

Services: worker-portal/IEWebApp/WebContent/wsdl/EMPIServiceIntegration/{createClientService,searchClientService,detailSearchClientService,matchClientService,mergeClientService,updateClientService}.wsdl — each GAIES_EMPI.wsProvider., document/literal, MEP input+output, with BOTH *_Soap12HttpPort (http) and *_Soap12Port (https) addresses. Batch: worker-portal/IN/webMethods/[secret-bearing path withheld], glob *EMPI_OUT_CLIENT), :195 (…IRN_ASSIGNMENT_FILE, EMPI_OUT_IRNASSIGNMENT), :389 (…IDALIAS_FILE), :583 (…ALIAS_FILE), :777 (…SSN_FILE), :971 (…DEMOGRAPHIC_FILE); inbound at EMPI_Inbound:1 ($TARS_EMPI_INBOUND_DAILY_File, glob STARS_IN_FILE) and :195 (SUCCESS_EMPI_INBOUND_DAILY_File). Canonical header: interfaceCode=EMPI, 'WS call to EMPI' AND 'WS call from EMPI' (both directions), targetSystem nextgen MDM

bidirectional

SOAP; SEVEN separate Axis2 stub services at /EMPI/services/<Op>Service (ports :8080 and :9443 observed), PLUS a webMethods-fronted GAIES_EMPI.wsProvider.checkForSuccessIndicatorService on :9445; PLUS inbound and outbound event/MFT flows

WSDL+XSD

real-time for the 7 client ops; event/file flows scheduled

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/empi/{checkClient/GAIES_EMPIWsProviderCheckForSuccessIndicatorServiceStub,createClient/CreateClientServiceStub,detailsSearchClient/DetailSearchClientServiceStub,matchClient,mergeClient/MergeClientServiceStub,searchClient/SearchClientServiceStub,updateClient/UpdateClientServiceStub}.java; common/src/gov/state/nextgen/in/bo/{InEMPIIndvBO,INSearchClientBO,INDetailSearchClientBO,INMergeClientBO,CheckSuccessClientIndicatorBO}.java; ejbModule/…​/in/INEMPISessionEJBBean.java; ejbModule/…​/in/{AddMCI,AddMCIResponse,UpdateMCI,UpdateDCMCI,AddDCMCI}.java; webMethods/EMPI_Inbound; webMethods/[secret-bearing path withheld]; webMethods/GAIES_EMPI*.zip (13 versions) and 'SUCCESS modified WSDL_EMPI_{Kristi,V1,V2}.zip'

bidirectional (inbound EMPI SSN + Citizenship files; real-time client jar also present)

SFTP for file feeds (JSch); SOAP web service for real-time (EMPIWebService.jar on the batch classpath)

two named flat files matched by regex on filename: EMPI SSN file (key EMPI_SSN) and EMPI Citizenship file (key EMPICTZN); merged with SVES/IES files by SVESEMPIMergeBatchlet

batch; file-presence-driven (remote listing + regex match, most-recent-file selection)

customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/SFTPCopyBatchlet.java:62-70 (svesSSNFile, empiSSNFile, empiCtznFile batch properties), :83-85, :155-183 (checkRemoteFile → setEmpiFilePath), :224-234 (regex filename match), :374 ("EMPI SSN or CTZN File does not exist at File Path"); jar customer-portal/CPBATCH/lib/nextgen_internal/EMPIWebService.jar

Mock-relevant facts
  • THE ONLY TRULY BIDIRECTIONAL REAL-TIME PARTNER (canonical headers assert both 'to' and 'from'). Six synchronous ops form an identity lifecycle: search → detailSearch → match → create → update → merge. merge is the dangerous one (two IRNs collapse into one) and there is no callback telling IES that a merge happened out-of-band — instead the daily IRN_ASSIGNMENT/IDALIAS/ALIAS files carry identity churn. A mock must therefore support 'the ID you hold was merged away and you learn tomorrow by file'. Both http and https ports are published for every op; a mock should bind both.

  • Gateway-as-client. Target namespaces are bare webMethods strings ('nscreateClientService', 'nsmatchClientService', …). create/match/merge/search/update publish BOTH a SOAP 1.1 port and a SOAP 1.2 port (two soap:address entries each) — a mock must serve both bindings. This is the inverse pair of the inbound GenerateAlertTaskService (EMPI merge alerts back into IES).

  • Gateway-as-server. targetNamespace is the non-URI string 'nsgenerateAlertTaskService' (webMethods-style ns) — mocks must not normalise it to a URL. Payload carries SSNNumber, SSNVerificationCode/Date, DOBVerificationCode/Date, EMPIIndividualStatusIndicator, IndicatorforDeath, DeathDate, ConfidentialityTypeCode, ToSystem.

  • The SFTP credentials namespace strongly implies Informatica: property file "[withheld]" with keys ETLServer / InfaUser / InfaPassword / MDMPort / KnownHosts — i.e. the EMPI is fronted by an Informatica ETL+MDM host. See SFTPUtil finding.

  • Not on the assigned marker list but architecturally central — EMPI is the person-identity resolution service every other interface keys against. Canopy’s persons service is the analogue.

  • CREATE_CLENT_SERVICE_URL is misspelled in the source and must be reproduced verbatim if any config-compat shim is built. SEARCH_CLIENT_SERVICE_NAME is a duplicate key (lines 165 and 167).

  • Highest operation count of any partner here (7 ops + events). MCI/DCMCI = Master Client Index add/update. The 'SUCCESS modified WSDL' zips tie EMPI to the legacy SUCCESS mainframe.

  • Searches by SSN and/or client identifier; returns a candidate ClientList with addresses and assigned Worker. Direct analogue of canopy’s persons service.

GA DDS (driver services identity match)

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the GTA webMethods ESB (endpoint host redacted)

WSDL 1.1 + WCF-generated XSD (imports http://schemas.datacontract.org/2004/07/DDSDriverMatchService); request req_first_name/req_mid_name/req_last_name/req_name_sufx/req_brth_dt/req_lic_id

real-time (interactive identity verification)

worker-portal/IEWebApp/WebContent/wsdl/DDSServiceIntegration/DDS_QueryDriverMatchService.wsdl:99 (service IES_DDS.wsProviders.queryDriverMatchService_WSD), :79 (portType queryDriverMatchService_WSD_PortType), :80 (operation queryDriverMatchService); targetNamespace [host withheld] at :1,:3; config key DDS_SERVICE_URL in worker-portal/IEApp_Properties/Local/Application.properties

outbound

JMS queue muTriggerQueue on queue manager DHS.TIERS (framework MQ)

FwXMLMessage XML envelope. Header explicitly: serviceId="RUN_MASS_UPDATE", queue="muTriggerQueue", queueManager="DHS.TIERS", actionId="RESPONSE", priority="9", with placeholder messageId/corrId/sourceId/sessionId literals

mass-update run (periodic / on-demand)

worker-portal/Common/src/gov/state/nextgen/common/bo/EDMessageBO.java:61-106 (setDefaultHeader; queue at :74, queueManager at :77, serviceId at :71, priority at :101). Catalog: worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:34 (gov.state.nextgen.batch.cargo.custom.EdbcVO="muTriggerQueue"). Also the default queue in worker-portal/IEApp_Properties/local_batch/messaging.properties:13.

bidirectional

SOAP (real-time) via webMethods provider IES_DDS.wsProviders.queryDriverMatchService_WSD

WSDL+XSD, operation queryDriverMatchService

real-time

worker-portal/IEWebApp/WebContent/wsdl/DDSServiceIntegration/DDS_QueryDriverMatchService.wsdl:80 (operation), :99 (service); DPPA headers at worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/DPPAHeader.java and CDPPAHeader.java

outbound

SOAP via webMethods ESB with GUID + client-IP identification

WSDL provider path IES_DDS.wsProviders.queryDriverMatchService_WSD/IES_DDS_Svcs_queryDriverMatchService_WSD_Port

real-time

worker-portal/IEApp_Properties/Local/Application.properties:484-492 (comment '#SR-102157: DDS Service Properties', DDS_CLIENT_IP_ADDRESS, DDS_GUID, DDS_WS_USERNAME, DDS_WS_PASSWORD, DDS_SERVICE_URL, DDS_TIME_SWITCH, DDS_XML_SWITCH, DDS_SERVICE_ACTIVE_SW)

outbound

SOAP via webMethods IES_DDS.wsProviders.queryDriverMatchService_WSD (Axis2 stub)

WSDL-generated. Operation queryDriverMatchService. Request: QueryDriverMatchService → DriverMatchRequest → AuthenticateDriver + ProgramInterfaceReqSrchArg{reqBrthDt, reqFirstName, reqLastName, reqLicId, reqMidName, reqNameSufx}. Response: QueryDriverMatchServiceResponse → DriverMatchResponse → DriversResponse{message, returnCode}. Also WSCredentials carrier type.

real-time; guarded by feature switches and a call counter

Call: customer-portal/bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2775 (callDDSService), :2782-2783 (AppConstants.DDS_TIME_SWITCH / DDS_XML_SWITCH), :2786 (AppConstants.DDS_SERVICE_URL), :2794 (AppConstants.DDS_WS_TIMEOUT_CHECKIN). Stubs: bridgesClient/gov/state/nextgen/ejb/business/services/dds/ (IES_DDSWsProvidersQueryDriverMatchService_WSDStub.java, DriverMatchRequest.java:36, ProgramInterfaceReqSrchArg.java:47-57, DriversResponse.java:39-41, AuthenticateDriver.java, WSCredentials.java). Key: sharedApp/…​/AppConstants.java:4710 = "DDS_SERVICE_URL"; endpoint framework/properties/config/production_env.properties:299. Counter constant AppConstants.DDS_SERVICE_COUNTER referenced from accessEJB.

inbound (IES exposes provider) / IES-initiated query

SOAP over HTTPS through the GTA ESB

WSDL + XSD

real-time, synchronous request/reply

worker-portal/IEWebApp/WebContent/wsdl/DDSServiceIntegration/DDS_QueryDriverMatchService.wsdl — tns [host withheld] service IES_DDS.wsProviders.queryDriverMatchService_WSD, op queryDriverMatchService, address https://<HOST>/ws/IES_DDS.wsProviders.queryDriverMatchService_WSD/IES_DDS_Svcs_queryDriverMatchService_WSD_Port, document/literal, MEP input+output

outbound

SOAP over GTA ESB :6410, IS package IES_DDS, service wsProviders.queryDriverMatchService_WSD (namespace [host withheld]

WSDL+XSD

real-time identity/driver match

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/dds/IES_DDSWsProvidersQueryDriverMatchService_WSDStub.java; common/src/gov/state/nextgen/in/bo/{INDDSResponseBO,INDDSServiceBO}.java

outbound

SOAP with WSCredentials in the request

WSDL+XSD; QueryDriverMatchService{ProgramInterfaceReqSrchArg, DriverMatchRequest, WSCredentials} → QueryDriverMatchServiceResponse{DriverMatchResponse}; also AuthenticateDriver/AuthenticateDriverResponse

real-time, on-demand identity/driver-licence match; every call audited

customer-portal/commonApp/gov/state/nextgen/access/business/rules/DDSServiceBO.java:15-23 (dds.QueryDriverMatchService, DriverMatchRequest/Response, AuthenticateDriver, ProgramInterfaceReqSrchArg, WSCredentials); :11-12 CP_DDS_WS_AUDIT_Cargo/Collection; :114 CallWebService.callDDSService

Mock-relevant facts
  • LARGELY VESTIGIAL: EDMessageBO.addRecord (:116-121) and persist (:128-133) have their bodies commented out and EdbcVO is ABSENT from the tree, so nothing is actually sent. All header 'request.get(…​)' sources are commented out at :62-68 and replaced with hardcoded literals. Also see FwConstants.java:926-933 for a second internal EDBC pair: FW_EDBC_MESSAGE_QUEUE="FWEDBCMessageQ" / FW_EDBC_MESSAGE_SERVER_QUEUE="FWEDBCMessageReplyQ" (request/reply), plus EDBC_MESSAGING_OBJECTS="FW_EDBC_MESSAGING_OBJECTS" and FW_EDBC_MESSAGE_ERRORS at :664-666,:921-923 — neither queue id appears in persistence.xml.

  • Gateway-as-client. The request schema declares in-envelope credential FIELDS objWSCredentials/WSUserName/WSPassword plus AuthenticateDriver/ClientIPAddress/GUID — no values are present in the WSDL, but a canopy mock must model message-level username/password elements (not just HTTP auth). Wrapped inner service is 'AuthenticateDriver' returning AuthenticateDriverResult/ReturnCode/Message.

  • NOTE THE ESB NAMESPACE [host withheld] — this family is fronted by the Georgia Technology Authority ESB rather than a direct partner link, so a mock stands in for the ESB hop, and ESB-injected faults (not just partner faults) are in scope. Synchronous request/reply, no callback, no retry.

  • WSCredentials is an in-payload credential element — mocks must accept-and-ignore it; do not seed real values. Audit table CP_DDS_WS_AUDIT records each call.

  • DDS_CLIENT_IP_ADDRESS and DDS_GUID are partner-issued caller identifiers, not secrets per se, but sit next to credential keys — values not extracted.

  • The presence of explicit DPPA header classes means the interface carries a statutory-purpose assertion per request — a mock should require it.

  • AuthenticateDriver is a request-embedded credential block — schema only, no values in tree.

ImageNow / Perceptive ECM (document imaging)

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTP (direct to ECM content server, not via ESB)

WSDL 1.1 + inline XSD, RPC/doc-literal; 7 co-published services aggregated by one service-catalog WSDL

real-time (interactive worker document actions)

worker-portal/DM/src/gov/state/nextgen/docmgmt/api/imagenow/wsdl/imagenow_services.wsdl:3-9 (imports of the 7 sibling WSDLs), :10,16,22,28,34,40,46 (services IMAGENOW_ACCESS_SERVICE, IMAGENOW_DOCUMENT_SERVICE, IMAGENOW_WORKFLOW_SERVICE, IMAGENOW_TASK_SERVICE, IMAGENOW_FOLDER_SERVICE, IMAGENOW_LICENSE_SERVICE, IMAGENOW_FORM_SERVICE); portTypes: imagenow_access.wsdl:29 INOW_ACCESS_PORT_TYPE, imagenow_document.wsdl:502 INOW_DOC_PORT_TYPE (73 operations), imagenow_workflow.wsdl:137 INOW_WF_PORT_TYPE (21 ops), imagenow_task.wsdl:47, imagenow_folder.wsdl:101, imagenow_form.wsdl:119, imagenow_license.wsdl:28. Generated JAX-WS client artifacts at worker-portal/DM/src/gov/state/nextgen/docmgmt/api/imagenow/jaxws/

outbound

SOAP over HTTPS via webMethods (GAIES_DIS.wsProvider.*; ESB host/port redacted)

WSDL 1.1 + inline XSD; document metadata + base64 file content, paging via startRow/endRow/NavigationPages

real-time (worker document search / retrieval / check-in)

worker-portal/IEWebApp/WebContent/wsdl/DISServiceIntegration/GAIES_DIS_wsProvider_NaviQuickAdvSearch_Port_1.wsdl:486 (service GAIES_DIS.wsProvider.NaviQuickAdvSearch), :442 portType, :443 SearchSoap_NavigationSearch, :447 serchSoap_QuickSerchAdvSer [sic], :451 SearchSoap_QuickSearch; …​/GAIES_DIS_wsProvider_getFileByName_ById_Port_1.wsdl:319 service, :288 portType, :289 getFileSoap_GetFileByName, :293 getFileSoap_GetFileByID; …​/GAIES_DIS_wsProvider_docMetaData_userMetaData_Port_1.wsdl:251 service, :220 portType, :221 metaDataSoap_UserMetaData, :225 metaDataSoap_DocMetaData; …​/GAIES_DIS_wsProvider_checkInFunctions_Port_1.wsdl:252 service, :221 portType, :222 checkInSoap_UpdateDocInfo, :226 checkInSoap_CheckInUniversal (byte-duplicate at worker-portal/IN/ejbModule/META-INF/wsdl/GAIES_DISwsProvidercheckInFunctions.wsdl). Config keys DIS_SEARCH/GET_FILE/USER_METADATA/CHECKIN_SERVICE_URL and DIS_*_CLOUD_SERVICE_URL in IEApp_Properties/Local/Application.properties

outbound (IES is the SOAP client)

SOAP web services, 7 service ports

WSDL+XSD, vendor-published; targetNamespaces http://www.imagenow.com/{access,document,folder,form,license,task,workflow}/services1.0.{wsdl,xsd} + http://www.imagenow.com/types/services1.0.xsd + http://www.imagenow.com/imagenow_services1.0.wsdl

real-time

worker-portal/DM/src/gov/state/nextgen/docmgmt/api/imagenow/wsdl/ — imagenow_access.xsd (95 ln), imagenow_commonTypes.xsd (2229), imagenow_document.xsd (2495), imagenow_folder.xsd (322), imagenow_form.xsd (467), imagenow_license.xsd (51), imagenow_task.xsd (173), imagenow_workflow.xsd (637) + 8 matching .wsdl

bidirectional

SOAP (real-time), large multi-WSDL API; DIS via webMethods provider

WSDL+XSD — imagenow_access, imagenow_document, imagenow_folder, imagenow_form, imagenow_task, imagenow_workflow, imagenow_license, imagenow_services (+ matching XSDs); DIS operations checkInFunctions, docMetaData_userMetaData, getFileByName_ById, NaviQuickAdvSearch

real-time; DIS daily jobs CO-DISCMF-DLY, CO-DISMMF-DLY, CO-DISPMF-DLY, CO-DISID-DLY, CO-DISFAIL-DLY, IN-DISUH-DLY, IN-DISUI-DLY, IN-DISGT-DLY

worker-portal/DM/src/gov/state/nextgen/docmgmt/api/imagenow/wsdl/ (8 WSDLs + 7 XSDs); worker-portal/IEWebApp/WebContent/wsdl/DISServiceIntegration/ — GAIES_DIS_wsProvider_checkInFunctions_Port_1.wsdl, GAIES_DIS_wsProvider_docMetaData_userMetaData_Port_1.wsdl, GAIES_DIS_wsProvider_getFileByName_ById_Port_1.wsdl, GAIES_DIS_wsProvider_NaviQuickAdvSearch_Port_1.wsdl; MFT DIS_IES_INBOUND_FILE in [secret-bearing path withheld]; webMethods GAIES_DISv15_12182015.zip; customer-portal customer-portal/bridgesClient/META-INF/ElectronicDocumentManagement/ElectronicDocumentManagement.wsdl + .xsd

bidirectional

SOAP, service ElectronicDocumentManagementService, namespace http://services.documentmanagement.deloitte.com

WSDL + XSD, 5 operations: getSearchResults, updateDocumentProperties, getDocumentProperties, getDocument, uploadDocument. Shapes: metaData{operator, propertyName, propertyType:int, propertyValue}; documentBean{documentId, metaData[0..500]}; updatedDocument{documentId, errorMessage, success}; searchCriteria{selectClause[0..500], whereCondition:metaData[0..500]}; documentSearchResults; documentProperties; documentPropertiesResults; updatedDocumentPropertiesResults; documentRequest{documentId}; documentResult{error:errorType}; document:base64Binary; documentUploadBean{documentSeqNum, caseNum, applicationNum, individualId, documentTitle, documentType}; documentUploadRequest{documentList[0..500]}; errorType{errorCode, errorDescription}

real-time

WSDL: customer-portal/bridgesClient/META-INF/ElectronicDocumentManagement/ElectronicDocumentManagement.wsdl:6 (targetNamespace), :47-68 (portType + 5 operations), :140-142 (service + soap:address). Schema: bridgesClient/META-INF/ElectronicDocumentManagement/ElectronicDocumentManagement.xsd:7-115. Client: bridgesClient/com/deloitte/documentmanagement/services/ElectronicDocumentManagementService.java:27-54 (@WebServiceClient; wsdlLocation is a leftover developer-workstation file:/C:/Self_Service/Workspace/… path). Beans: bridgesClient/com/deloitte/documentmanagement/services/beans/

bidirectional

SOAP

WSDL + XSD

real-time, synchronous

worker-portal/DM/src/gov/state/nextgen/docmgmt/api/imagenow/wsdl/*.wsdl — 8 WSDLs (access, document, folder, form, license, task, workflow, services), services named IMAGENOW_*_SERVICE, document/literal, MEP input+output+fault

outbound (re-push of failed applicant document uploads)

not resolvable in this subtree — mediated by DocumentManagementBO in the shared access layer (compiled jar)

row-driven from CP_APP_IN_FILE_UPLD and CP_APP_IN_MA_QUAL_ACT_FILE_UPLD tables; MA-Qualified/Green-Card variant carried by CP_APP_IN_MA_QualOrGc custom cargo

daily (CP-WPDUPLD-DLY)

customer-portal/CPBATCH/CP/src/META-INF/batch-jobs/CP-WPDUPLD-DLY.xml:34-40 (CpFailedDocUpldReader → CpPendingFileUpldProcessor → CpFailedDocUpldWriter); customer-portal/CPBATCH/CP/src/gov/state/nextgen/cp/batch/writer/CpFailedDocUpldWriter.java:13-20 (CP_APP_IN_MA_QualOrGc_Custom_Cargo, CP_APP_IN_FILE_UPLD_Cargo/Collection, CP_APP_IN_MA_QUAL_ACT_FILE_UPLD_Cargo/Collection, ARPathwayBO, DocumentManagementBO)

bidirectional

SOAP for upload/download/metadata + SFTP (encrypted file drop) as the failure fallback

SOAP: DocHistoryUpdateService (ns dis.services.nextgen.state.gov; DocHistoryUpdateRequest/Response with DocumentInformation, Program, ProgramInformation) and DocumentLogOnService (ns "nslogonIES"; LogonIES/LogonIESResponse, GenerateTaskRequest/Response, CaseApplication, Person, Program). File: encrypted PDF written to an SFTP path recorded in CP_APP_PDF_XML.EN_SFTP_FILE_NAME / ES_SFTP_FILE_NAME. Content metadata keys are x-prefixed content-server fields.

real-time per document upload; SFTP path used only on DIS upload failure (retry/backfill), plus a batch PDF flow

Metadata key contract: customer-portal/commonApp/gov/state/nextgen/access/services/bridges/util/CustomPropertyKeys.java:11-33 (DOCUMENT_ID, DOCUMENT_TYPE, xAssitantUnit, xCRSClient, xDocumentType, xTransactionID, xDateOfEntry, UPLOADED_FILE_CONTENT, FILE_PATH_DIS). SFTP fallback: commonApp/gov/state/nextgen/access/business/rules/DocumentManagementBO.java:5383-5407 downloadPdfFromSftp, :5625-5634 and :6165-6174 encrypt-and-write-to-SFTP, :5100-5106 and :5299-5300 EN/ES_SFTP_FILE_NAME columns, :5718-5720. Batch driver: commonApp/gov/state/nextgen/access/business/rules/ABFinalSubmitBO.java:19781-19802 processCpPdfDisUploadFlowForBatch. SOAP stubs: commonApp/gov/state/nextgen/services/dis/.java, commonApp/gov/state/nextgen/ejb/business/services/disLogOn/.java

Mock-relevant facts
  • Session model (imagenow_access.xsd): ACCESS_SESSION_BEGIN_USING_PASSWORD{PASSWORD, EXTENDER_TYPE, EXTENDER_AUTH_TOKEN} → LOGIN_OBJECT + EXPIRATION_DATE + MESSAGE_AGENT_SERVER_PORT; ACCESS_SESSION_END; ACCESS_USER_CHECK. Every subsequent call carries INOW_CONTEXT{AUDIT_USER, EXTENDER_TYPE, EXTENDER_AUTH_TOKEN, INOW_USER_NAME, INOW_USER_ID, APP_CONTEXT, LOCALE, SESSION_STRING, TIMEOUT} — the mock’s auth shape. Document keying is a 5-slot drawer index: DRAWER_NAME + FIELD1..FIELD5 (Gateway maps case/person into these) + TAB + DOCUMENT_ID/UNIQUE_ID. Document ops: STORE/STORE_SWA, RETURN/RETURN_SWA, MOVE, COPY, DELETE, LOCK/UNLOCK, SEARCH_QUERY (QUERY_PARAM_NAME/OPERATOR/VALUE/JOIN_OPERATOR + QUERY_SORT_ORDER), KEYWORDS_GET/SET/DELETE, version control (CHECK_IN/CHECK_OUT/PROMOTE/VERSION_LIST/VERSION_HISTORY), digital signature (DOCUMENT_SIGN with SIGNATURE_PASSWORD, SIGNATURE_VERIFY/VERIFY_ALL/VOID, DIGITAL_SIGNATURE_REASON), capture profiles (CAPTURE_PROFILE_START_UPLOAD/END_UPLOAD/CAPTURE_DOC_OBJECT). Workflow ops: WORKFLOW_QITEM_{GET,SET,DELETE,ROUTE_AUTO,ROUTE_MANUAL,ROUTE_BACK,SET_STATUS,SET_HOLD,GET_HISTORY,GET_NEXT,NOTIFY_NEW}, WORKFLOW_Q_GET_LIST/GET_USERS/GET_ROUTES_FORWARD/GET_HOLD_REASON_LIST. Task ops: TASK_CREATE/COMPLETE/UPDATE/DELETE/ADD_COMMENT/GET_PROPERTIES, MY_ASSIGNED_TASKS, TASK_TEMPLATE_*. There is also an EXTERNAL_MESSAGE family (EXTERNAL_MESSAGE_ID/TYPE/NAME/DIRECTION/STATUS/PROPERTY, SEND_EXTERNAL_MESSAGE) — an outbound eventing hook. Schemas carry PASSWORD/SIGNATURE_PASSWORD/EXTENDER_AUTH_TOKEN/LICENSE_TOKEN/LICENSE_HARDWARE_FINGERPRINT as element declarations only; no credential values found in the XSDs.

  • Gateway-as-client (only generated client stubs exist; no server impl in tree). Target namespaces http://www.imagenow.com/{access,document,folder,form,license,task,workflow}/services1.0.wsdl. Key ops: ACCESS_SESSION_BEGIN_USING_PASSWORD / ACCESS_SESSION_END / ACCESS_USER_CHECK; DOCUMENT_STORE, DOCUMENT_SEARCH_QUERY, DOCUMENT_KEYWORDS_GET/SET, DOCUMENT_RETURN, DOCUMENT_SIGN; WORKFLOW_QITEM_ROUTE_AUTO/MANUAL/BACK, WORKFLOW_Q_GET_LIST; TASK_CREATE/TASK_COMPLETE/MY_ASSIGNED_TASKS; FOLDER_* CRUD; LICENSE_GET_TOKEN. Session is password-based (ACCESS_SESSION_BEGIN_USING_PASSWORD) — mock must model a session token lifecycle. No credentials present in the WSDLs.

  • Gateway-as-client. Target namespaces are bare webMethods strings ('nsNaviQuickAdvSearch', 'nsgetFileByName_ById', 'nsdocMetaData_userMetaData', 'nscheckInFunctions'). Operation 'serchSoap_QuickSerchAdvSer' is doubly misspelled in the contract — reproduce verbatim. The IN/ copy of checkInFunctions points at a different (pre-ESB, direct webMethods IS) endpoint than the IEWebApp copy, evidencing an ESB migration; both contracts are otherwise identical. Separate 'CLOUD' config keys indicate a parallel cloud DIS endpoint set.

  • A SECOND, PARALLEL document-management integration alongside DIS/Stellent — the only partner family whose WSDLs declare explicit fault messages in addition to input/output, so ImageNow mocks must be able to return typed SOAP faults, not just HTTP errors. Includes a license service (seat checkout), meaning a mock can plausibly fail a call for license exhaustion — a failure mode absent everywhere else.

  • Generated client present, NO consumer in customer-portal. Note the operator/propertyName/propertyValue metaData triple used as a generic query predicate — worth mirroring in a canopy mock if this surface is ever revived. Related call CallWebService.java:2902 callUpdateDocumentMetaDataService targets the worker-portal path, not this Deloitte service.

  • CUSTOMER-PORTAL-ONLY failure-recovery path: documents an applicant uploaded that never made it to the worker-side content store. ARPathwayBO = Assistance Request pathway. The concrete ECM product is not named in source (no FileNet/Documentum/OnBase strings anywhere in CPBATCH) — it is behind the compiled access layer.

  • Three doc ops reachable from commonApp: calluploadDocumentWebService (3 call sites), callDownloadDocumentWebService, callretrieveDocumentWebService, callUpdateDocumentMetaDataService, callretrieveUserDocsWebService. rmcEJB uses updateDocumentMetaDataToWP (see rmcEJB entry).

  • 5,102 ImageNow hits — the highest non-partner marker. Because scanned documents carry FTI/PHI, mocks must never contain real document bytes.

SSA — BENDEX (Title II benefits)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

bidirectional (separate send + receive record layouts)

batch file → JAXB record

fixed-position layout with explicit fillerN slots (filler1..filler20 on receive) — a wire-position layout, not a semantic XML doc

monthly/periodic batch (send request file, receive response file)

send: worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/BendexSendInfo.java:58 (ns http://www.example.org/BENDEXSendSchema); receive: …​/BendexRcvInfo.java:175 (ns http://www.example.org/BENDEXRcvSchema, 3820 ln, ~135 fields); wrappers BendexSendInfoDocument.java / BendexRcvInfoDocument.java

outbound request queue (response path not in this tree)

JMS queue (framework MQ)

FwXMLMessage XML envelope

not discernible from this surface

worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:23 (gov.state.nextgen.in.cargo.custom.INDRBendexMsgVO="INBendexQ"); service/operation routing worker-portal/IEWebApp/WebContent/XML/config/services.xml:13 (getBendexInfo→ejb/INDRMessageSessionEJB), :35 (executeINDRBendexBO).

bidirectional

batch file via webMethods ActiveTransfer MFT; inbound via SQL*Loader into IN_BENDEX_STG

fixed-width, 801-byte records (single RECORD_DATA blob column, parsed downstream)

daily and monthly outbound (IES_BENDEX_OUTBOUND_DAILY_FILE, IES_BENDEX_OUTBOUND_MONTHLY_FILE); daily and annual inbound (IN-RCBEN-DLY, IN-RCBEN-ANL)

worker-portal/BATCH/IN/sql-loader-control/InRcvBendexDlyCtl.ctl:2-8 (INTO TABLE IN_BENDEX_STG, RECORD_DATA POSITION (1:801), CREATE_USER_ID CONSTANT "IN-RCBEN-DLY"); annual variant InRcvBendexAnlCtl.ctl; batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/bendex/ (45 files); MFT event names in worker-portal/IN/webMethods/IES_SSA_Inbound (BENDEX_IES_INBOUND_DAILY_FILE)

bidirectional

batch file + SQL*Loader staging; JMS queue INBendexQ for online lookups

BeanIO fixed-length; inbound 3 record types / 181 fields / 800-char record; outbound 1 record / 19 fields / 80-char; SQL*Loader RECORD_DATA POSITION (1:801) into IN_BENDEX_STG

daily (IN-RCBEN-DLY) and annual (IN-RCBEN-ANL); send daily + monthly (IN-SNBEN-DLY / IN-SNBEN-MLY)

worker-portal/BATCH/IN/src/resource-mapping/bendex-rcv-dly-mapping.xml (stream BendexRcvRecords); worker-portal/BATCH/IN/src/resource-mapping/bendex-snd-mapping.xml (stream BendexSndRecordStream); worker-portal/BATCH/IN/sql-loader-control/InRcvBendexDlyCtl.ctl:1-9; worker-portal/BATCH/IN/sql-loader-control/InRcvBendexAnlCtl.ctl; worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:23

bidirectional

batch file over SFTP via MFT

flat data file (fixed-width)

daily + monthly; MFT poll interval=120s inbound

worker-portal/IN/webMethods/IES_SSA_Inbound:969 (BENDEX_IES_INBOUND_DAILY_FILE, desc 'Receive Bendex Data From SSA', filter InRcvBenMlyDat); outbound at ActiveTransfer_Sprint3_v1:377 (IES_BENDEX_OUTBOUND_DAILY_FILE) and :5692 (IES_BENDEX_OUTBOUND_MONTHLY_FILE), duplicated at '[secret-bearing path withheld]':972 and :5043

bidirectional

batch file + SQL*Loader stage

fixed-width; BeanIO fixedlength (bendex-rcv-dly-mapping.xml inbound, bendex-snd-mapping.xml outbound)

daily + annual inbound; daily + monthly outbound

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-RCBEN-DLY,IN-RCBEN-ANL,IN-SNBEN-DLY,IN-SNBEN-MLY,IN-SNBENMRG-DLY,IN-SNBENMRG-MLY}.xml; mappings worker-portal/BATCH/IN/src/resource-mapping/{bendex-rcv-dly-mapping.xml,bendex-snd-mapping.xml} (both format="fixedlength"); loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvBendexDlyCtl.ctl,InRcvBendexAnlCtl.ctl} → INTO TABLE IN_BENDEX_STG

inbound

batch file; whole record bulk-loaded via SQL*Loader into IN_BENDEX_STG, then parsed with BeanIO

fixed-width 800-byte detail record, 136 fields (ssn, bic, name parts, gender, 6 payee address lines, zip, state/county, direct deposit ind, agencyCd, sourceCd, assistCat, dirWireInpCd, earningsRequest, stateCntrlData, ievsAgencySubCd, …) plus an 11-field 800-byte header (fileName, tag, stateAgencyCode, fileRunDate, checkDue/checkDueDate, fileType)

daily (IN-RCBEN-DLY) and annual (IN-RCBEN-ANL)

worker-portal/BATCH/IN/src/resource-mapping/bendex-rcv-dly-mapping.xml (streams BendexRcvRecords + BeersRcvRecords, format=fixedlength; records BendexRcvHeader, BendexRcvRecord); worker-portal/BATCH/IN/sql-loader-control/InRcvBendexDlyCtl.ctl:1-9 (INTO TABLE IN_BENDEX_STG, RECORD_DATA POSITION (1:801) PRESERVE BLANKS, CREATE_USER_ID CONSTANT "IN-RCBEN-DLY"); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCBEN-DLY.xml:32-75 (FileExistenceCheckPatternMatch → NGSingleFileExistenceCheck → NGRecordCountCheck → FileSQLLoadBatchlet → chunk)

outbound

batch file (BeanIO fixedlength writer; daily and monthly variants with a separate merge job)

fixed-width 80-byte, 19 fields: ssn, bic, earningsRequest, lastName, firstName, midName, genderCd, dobDt, agencyCd, assistCat, dirWireInp, deathDt, stateCommCd, ievsAgencySubCd, stateCntrlData + 4 fillers

daily (IN-SNBEN-DLY) and monthly (IN-SNBEN-MLY); merge jobs IN-SNBENMRG-DLY / IN-SNBENMRG-MLY

worker-portal/BATCH/IN/src/resource-mapping/bendex-snd-mapping.xml (stream BendexSndRecordStream, record BendexSndRecord, 19 fields, reclen 80); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/bendex/chunk/writer/BendexSndCompositeWriter.java; …​/bendex/batchlet/BendexSndDlyDuplicateCheckBatchlet.java

Mock-relevant facts
  • Send shape (19 fields): ssn, bic, earningsRequest, lastName/firstName/midName, genderCd, dobDt, agencyCd, assistCat, dirWireInp, deathDt, stateCommCd, ievsAgencySubCd, stateCntrlData + 4 fillers. Receive shape: identifiers (can, bic, ssn, oldBic, dualEntitSsn/dualEntitBic, trplEntitSsn/trplEntitBic, xrefSsn/xrefBic, verifiedBoan, rrClaimNum); money (monthlyBenefitPayable, grossAmtPayable, monthlyBenefitAmt, retroPaymentAmt, monthlyOverpayDeductionAmt, ssiOverpayWithheldAmt, garnishmentWithheldAmt, hiPremCollectibleAmt, smiCollectibleAmt, variableSmiPremiumAmt); Medicare HI (Part A) and SMI (Part B) each with 3 entitlement/termination date pairs + third-party premium-payer block; dates (initialEntitDt, currEntitDt, disabilityDt, dobDt, deathDt, effDt, processDt, ssiEntitTermDt, rrbJurisdictionStart/StopDt); code tables — paymentStatusCd, assistCat, agencyCd, sourceCd, medStatInd, entitInd, ssiStatusCd, rrbStatusCd, paymentCycleInd, hiTypeInd/hiPeriodInd/hiTpCategoryInd, smiBasisInd/smiNonCoveredInd/smiTpCategoryInd, dobDtInd/deathDtInd, commCd, ievsAgencySubCd. Three citizenship begin/end/country/proof triplets. ievsAgencySubCd on both directions marks this as an IEVS-family exchange.

  • Inbound file gate pattern is uniform across inbound jobs and worth replicating in mocks: existence-by-pattern, single-file check, record-count check (both overridable via countChkOvrd/singlefileChkOvrd), SQL*Loader, chunk process, archive. Post-processing logic (dual entitlement, unearned income insert/end) in bendex/util/INBendexProcessing.java and BendexDualEntitmentBatchlet.

  • NAME/GLOB MISMATCH IS LOAD-BEARING: the action is named …​_DAILY_FILE but the filter is InRcvBenMlyDat (monthly token) — a mock keyed on the action name will never match the file. Same decoupled request/response-by-separate-schedule pattern as SVES; no ack, no retry.

  • INDRBendexMsgVO class is absent from the tree — dead config. Grouped under the 'IN DR' (Interfaces Data Retrieval) family that all route through ejb/INDRMessageSessionEJB.

  • 4,844 hits. The 801-byte width and the RECORD_DATA-blob-then-parse pattern is directly reusable for a deterministic mock.

  • MRG suffix = a separate merge job that consolidates split/partitioned outbound files before transmission.

  • Duplicate-check batchlet runs before send — mocks should expect de-duplicated request keys (ssn+bic).

FNS — eDRS (disqualified recipients)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

bidirectional (query + add/modify/delete of disqualification records)

SOAP over HTTPS via the GTA webMethods ESB (IES_eDRS.wsProvider.*; endpoint host redacted)

WSDL 1.1, 7 single-operation contracts; flat snake_case fields (req_ssn, req_birth_date, req_decision_date, offense_code, penalty_period, state_code, state_ref_num, req_User_GUID, proc_return_code)

real-time per-operation; a daily reconciliation batch surrounds it

All under worker-portal/IEWebApp/WebContent/wsdl/EDRSServiceIntegration/ — eDRSQueryBySSN.wsdl:91 service …eDRSQueryBySSN_WSD, :71 portType, :72 op eDRSQueryBySSN; eDRSQueryByName.wsdl:93/:73/:74 op eDRSQueryByName; eDRSAddDisqualification.wsdl:80/:60/:61 op eDRSAddDisqualification; eDRSModifyDisqualification.wsdl:83/:63/:64 op eDRSModifyDisqualification; eDRSModifyRecpient.wsdl [filename misspelled]:80/:60/:61 op eDRSModifyRecipient; eDRSDeleteDisqualification.wsdl:75/:55/:56 op eDRSDeleteDisqualification; eDRSDisqualContactDetails.wsdl:77/:57/:58 op eDRSDisqualContactDetails. Config keys EDRS_SERVICE_URL, EDRS_QNAME_SERVICE_URL, EDRS_QSSN_SERVICE_URL, EDRS_DISQCONTACT_SERVICE_URL, ADD_EDRS_SERVICE_URL, MODIFY_EDRS_SERVICE_URL, DELETE_EDRS_SERVICE_URL in IEApp_Properties/Local/Application.properties

bidirectional (EDRS* = outbound submission with header/detail/trailer; InEdrs* = inbound national file)

batch file → JAXB record

fixed-position layout, header + N detail + trailer; ns http://www.example.org/EdrsSendSchema (out) and http://www.example.org/InEdrsSchema (in)

monthly batch (header carries runDate + recCount/localRecCount)

outbound worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/EDRSSendDisqualificationInfo.java:62, header …​/EDRSSendHeaderInfo.java, trailer …​/EDRSSendTrailerInfo.java, wrapper …​/EDRSInfoDocument.java; inbound …​/InEdrsInfo.java:64 + …​/InEdrsInfoDocument.java

bidirectional

SOAP (real-time), 7 separate WSDLs, one per operation

WSDL+XSD — operations eDRSAddDisqualification, eDRSModifyDisqualification, eDRSDeleteDisqualification, eDRSModifyRecipient, eDRSQueryBySSN, eDRSQueryByName, eDRSDisqualContactDetails

real-time

worker-portal/IEWebApp/WebContent/wsdl/EDRSServiceIntegration/eDRSAddDisqualification.wsdl:61; eDRSModifyDisqualification.wsdl:64; eDRSDeleteDisqualification.wsdl:56; eDRSModifyRecpient.wsdl:61 (note the misspelled filename); eDRSQueryBySSN.wsdl:72; eDRSQueryByName.wsdl:74; eDRSDisqualContactDetails.wsdl:58; JAXB send-side cargo at worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/EDRSSendDisqualificationInfo.java, EDRSSendHeaderInfo.java, EDRSSendTrailerInfo.java, EDRSInfoDocument.java

bidirectional (query + add/modify/delete)

SOAP via webMethods ESB — six distinct operations, each with its own URL/name/namespace triad

WSDL+XSD; provider paths IES_eDRS.wsProvider.{QueryByName, QueryByID, SearchLocalityContacts, eDRSAddDisqualification, eDRSModifyDisqualification, eDRSDeleteDisqualification, eDRSModifyRecipient}; namespaces under DHS_IES.Providers.*.services

real-time

worker-portal/IEApp_Properties/Local/Application.properties:205-209 (EDRS_SERVICE_URL under GAIES_FNS.wsProvider.FNS, EDRS_NAME_SPACE, EDRS_SERVICE_NAME, EDRS_SERVICE_LOCATION_CODE), :298-314 (EDRS_QNAME_*, EDRS_QSSN_*, EDRS_DISQCONTACT_*), :327-343 (ADD_EDRS_*, MODIFY_EDRS_*, DELETE_EDRS_*, EDRS_MODIFY_RECIPIENT_URL)

bidirectional

SOAP over HTTPS — IES exposes 6 wsProvider endpoints; GAIES_FNS package calls out to the eDRS ASMX service

WSDL + XSD

real-time, synchronous request/reply

Providers: worker-portal/IEWebApp/WebContent/wsdl/EDRSServiceIntegration/{eDRSAddDisqualification,eDRSModifyDisqualification,eDRSDeleteDisqualification,eDRSModifyRecpient,eDRSQueryByName,eDRSQueryBySSN,eDRSDisqualContactDetails}.wsdl — all document/literal, MEP input+output, addresses https://<HOST>/ws/IES_eDRS.wsProvider._WSD/*_Port. Outbound consumer: worker-portal/IN/webMethods/GAIES_FNS.zip — canonical header literals interfaceCode=FNS, direction=Outbound, endpoint https://<HOST>/edrsws/edrsappws.asmx, 12 operations

outbound (query + maintenance) with synchronous responses

SOAP

WSDL+XSD — wsConsumer FNS_eDRS bound to eDRSAppWSSoap; local wsProvider FNS

real-time for queries; disqualification adds/modifies event-driven; MonthlyStatusDifferences implies a monthly reconciliation call

worker-portal/IN/webMethods/GAIES_FNS.zip → ns/GAIES_FNS/wsConsumer/FNS_eDRS_/connectors/eDRSAppWSSoap_* (12 operations), ns/GAIES_FNS/services/* , ns/GAIES_FNS/wsProvider/FNS

bidirectional

SOAP over GTA ESB :6410, IS package IES_eDRS; SEVEN operations each with its own Axis2 stub and package

WSDL+XSD

real-time (query) + transactional updates (add/modify/delete disqualification)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/{eDRSAddDisqualification,eDRSDeleteDisqualification,eDRSModifyDisqualification,eDRSModifyRecipient,eDRSQueryByName,eDRSQueryBySSN,eDRSDisqualContactDetails}/*Stub.java (services eDRSAddDisqualification, eDRSDeleteDisqualification, eDRSModifyDisqualification, eDRSModifyRecipient, QueryByName, QueryByID, SearchLocalityContacts); common/src/gov/state/nextgen/in/bo/{InEdrsResponseBo,INEDRSServiceBO}.java; ejbModule/…​/in/INIPNEDrsSessionEJBBean.java

Mock-relevant facts
  • Header (5): recType, stateCode, recCount, localRecCount, runDate. Detail out (23): recType, stateCode, localityCode, activityCode, name parts, ssn, dsqNbr, dob, dsqStrtDt, dsqLgthQt (disqualification length in quarters), dsqDcsnDt, gender, stateInfo, progCode, offenceCode, plus a 'new*' correction block (newLastName/newFirstName/newMiddleInitial/newSsn/newDsqNbr/newDsqDcsnDt) used for amendments. Trailer (13): recType, stateCode, loclCd, actyCode, localityName, contactTitle, contactOrg, conInterntnalPhonePrefix, contactAreaCode, contactPhoneNum, contactExtn, contractFaxNumber, comments. Inbound (25) adds drsReceiveDt + drsProcessDt and uses disqLevelNum/disqLengthMonthNum (MONTHS inbound vs QUARTERS outbound — a real unit mismatch a mock must model deliberately). Code tables: activityCode/activityInd, offenceCd, programCd, recType. A sibling WSDL dir exists at IEWebApp/WebContent/wsdl/EDRSServiceIntegration/ (real-time path, outside my XSD surface).

  • Gateway-as-client for all 7. Every targetNamespace embeds an internal webMethods hostname (e.g. eDRSQueryBySSN.wsdl:1 'http://<internal-host>/DHS_IES.Providers.QueryBySSN.services') — the namespace string is load-bearing for SOAP dispatch, so a canopy mock must match it while the deployment should sanitise the host. Add-request carries req_is_trafficking_offense (a distinct FNS penalty category). Note the file-name typo 'eDRSModifyRecpient.wsdl' vs the correct service/op name 'eDRSModifyRecipient'.

  • 12 operations: Add_Disqualification, Modify_Disqualificiation (sic), Delete_Disqualificiation (sic), Modify_Recipient, OnlineQuerySSN, OnlineQueryName, RecentDisqualifications, TotalDisqualifications, DisqualContactDetails, FiscalYearData, MonthlyStatusDifferences, DatabaseRecordCount. Vendor misspellings 'Disqualificiation' are in the wire contract — replicate exactly in mocks. Local flow services mirror 1:1 plus setCommonVarsFNS.

  • MIRRORED PAIR: for each eDRS business function IES exposes an inbound provider (worker portal → IES) that is a thin synchronous pass-through to the FNS-side ASMX operation. Every op is request/reply doc/literal with no callback. Query ops come in two keying modes (QueryByName vs QueryBySSN) that a mock must distinguish. No retry on the outbound leg; a failure surfaces as a SOAP fault to the worker.

  • 3,631 hits, 2,590 in worker-portal/IN. Interesting: header/trailer JAXB classes exist alongside the SOAP WSDLs, suggesting a batch/file variant too. The filename eDRSModifyRecpient.wsdl is misspelled in the tree — grep for both spellings.

  • The base EDRS_SERVICE_URL routes through the GAIES_FNS webMethods provider — the FNS classification is explicit in the endpoint path. Also has JMS queues INOPIDisq and INOPIReferralQ (persistence.xml:23).

  • Note the query-by-SSN package is named eDRSQueryBySSN but the wire service is QueryByID — a naming mismatch canopy should not replicate.

FNS — reporting / other

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the GTA webMethods ESB (GAIES_NAC.wsProvider.nacMatch; endpoint host redacted). A separate REST/token channel also exists in config

WSDL 1.1; imports vendor namespace [host withheld] Client/Case/Identity/Contact blocks with BenefitState, BenefitMonthStart/End, EligibilityStatus, Include12MonthHistory, InvestigativeFields/InvestigativePurpose

real-time match; daily batch reconciliation and disposition alongside it

worker-portal/IEWebApp/WebContent/wsdl/NACServiceIntegration/GAIES_NAC_wsProvider_nacMatch_Port_1.wsdl:250 (service GAIES_NAC.wsProvider.nacMatch), :232 (portType nacMatch_PortType), :233 (operation nacMatch), vendor namespace import at :7 and :169. Config keys NAC_SERVICE_URL, NAC_BULK_TOKEN_URL, NAC_DUPLICATE_URL, NAC_MATCH_RESOLUTION_URL in IEApp_Properties/Local/Application.properties. Daily batch cadence: worker-portal/BATCH/IN/src/batch-fast4j-properties/IN-RCNAC-DLY-, IN-RCNACMCH-DLY-, IN-RCNACERR-DLY-, IN-RCNACMRR-DLY-, IN-RCNACMSX-DLY-, IN-RCNACX-DLY-, IN-NACDISPOSE-DLY-*.properties

bidirectional

batch file via webMethods ActiveTransfer MFT; SQL*Loader into staging

fixed-width — MSX response ~815 bytes, MRX response ~739 bytes, reject response ~152 bytes

outbound monthly (IES_NAC_OUTBOUND_MONTHLY_FS_CLIENT); inbound monthly match response (NAC_IES_INBOUND_MONTHLY_MATCH_RESPONSE) plus many daily jobs (IN-RCNAC-DLY, IN-RCNACMCH-DLY, IN-RCNACMSH-DLY, IN-RCNACMSX-DLY, IN-RCNACMRR-DLY, IN-RCNACSNAP-DLY, IN-RCNACERR-DLY, IN-RCNACX-DLY, IN-NACDISPOSE-DLY)

Identity confirmed at worker-portal/Common/src/gov/state/nextgen/common/bo/DcCaseProgramBO.java:9826 ("Match received from the National Accuracy Clearinghouse (NAC)"); layouts worker-portal/BATCH/IN/sql-loader-control/InNacMsxResponseRcvCtl.ctl (POSITION (815:815)), InNacMrxResponseRcvCtl.ctl (POSITION (670:739)), InNacRejectResponseRcv.ctl (POSITION (121:152)); batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/nac/ (117 files); webMethods package GAIES_NAC*.zip in worker-portal/IN/webMethods/

outbound

webMethods package present; no distinct FNS batch job or WSDL isolated on this surface

not determined

not discernible

webMethods integration package worker-portal/IN/webMethods/GAIES_FNS.zip (633 KB); scattered code refs at worker-portal/Common/src/gov/state/nextgen/common/dao/custom/EdDcIndvDisqPenaltiesDAO.java:516,553,585 and worker-portal/BATCH/BV/src/gov/state/nextgen/bv/batch/bo/impl/TOPAddressMatchRcvBOImpl.java:310; worker-portal/IEApp_Properties/Local/Application.properties:206

outbound

batch file

BeanIO fixed-length: FoodStampMonthlyRecord.xml (3/52/624), TanfMonthlyRecord.xml (3/52/624), FsTanfDaillyRecord.xml (3/53/624), FsTanfPSNAPDaillyRecord.xml (3/52/624), FsTanfDaillyRecordVal.xml (3/52/505); TANF quarterly report layouts TanfActiveQlyRecord.xml (5/167/156), TanfClosedQlyRecord.xml (5/83/71), TanfAggregateQlyRecord.xml (3/60/379), tanf-highperf-snd-qly-mapping.xml (3/13/26)

daily (BI-FSTANF-DLY, BI-SNFSTANF-DLY, BI-PEBT-DLY, BI-TANFCLOCK-DLY), weekly (BI-PSNAP-WLY, BI-PSNAPMM-WLY), monthly (BI-FS-MLY, BI-TANF-MLY, IN-TANFRPT-MLY, IN-TANFTRG-MLY), quarterly (IN-SNTHP-QLY, IN-TANFTRG-QLY, IN-SNPRQ-QLY)

worker-portal/BATCH/BI/src/resource-mapping/; worker-portal/BATCH/IN/src/resource-mapping/TanfActiveQlyRecord.xml, TanfClosedQlyRecord.xml, TanfAggregateQlyRecord.xml, tanf-highperf-snd-qly-mapping.xml; worker-portal/BATCH/BI/src/META-INF/batch-jobs/ (32 jobs)

outbound

batch file over SFTP via MFT

flat data file (fixed-width federal report layout)

quarterly

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:2384 (IES_TANF_OUTBOUND_AGGREGATE_QUATERLY_FILE, active=true), :6447 (IES_TANF_OUTBOUND_ACTIVE_QUATERLY_FILE, active=true), :6573 (IES_TANF_OUTBOUND_CLOSED_QUATERLY_FILE, active=true); worker-portal/IN/webMethods/IES_TANF_OUTBOUND_HIGHPERFORMANCE_Event_01152016:1 (IES_TANF_OUTBOUND_HIGHPERFORMANCE_QUARTERLY_FILE)

bidirectional

HYBRID: (a) REST/JSON over HTTPS through the webMethods HTTP interface for match retrieval + match disposition; (b) batch fixed-width files + SQL*Loader for bulk match/response ingest

JSON (application/json) for the API; fixed-width for the bulk files (nac-rcv-mly-mapping.xml, nac-rcv-msh-mapping.xml, nac-send-ncf-dly-mapping.xml, nac-snd-mly-cf-mapping.xml, nac-snd-mrf-dly-mapping.xml)

daily (matches, errors, MSH/MSX/MRR responses, dispose) + monthly (MCF confirmation file)

12 jobs: …​/batch-jobs/{IN-RCNAC-DLY,IN-RCNACERR-DLY,IN-RCNACMCH-DLY,IN-RCNACMRR-DLY,IN-RCNACMSH-DLY,IN-RCNACMSX-DLY,IN-RCNACSNAP-DLY,IN-RCNACX-DLY,IN-NACDISPOSE-DLY,IN-SNNACCF-DLY,IN-SNNACMCF-MLY,IN-SNNACMRF-DLY}.xml; IN-RCNAC-DLY.xml:42 batchlet NacMatches, :58 reader NacMatchResolutnReader, :64 writer NacMatchResolutnWriter; API path worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/nac/bo/impl/NacDisposeBOImpl.java:4 (java.net.http.HttpResponse), :25 (import gov.state.nextgen.common.util.WmHttpInterface), :301 (WmHttpInterface.makePATCHRequest(initiator, matchId, …)); client worker-portal/Common/src/gov/state/nextgen/common/util/WmHttpInterface.java:76,141-142 (Content-Type/Accept application/json), :95 property key NAC_MATCH_RESOLUTION_URL, :97/:103 NAC connect/request timeouts, :158 AWS_REGION, :205 AWS FIPS config; loaders worker-portal/BATCH/IN/sql-loader-control/{InNacMrxResponseRcvCtl.ctl → IN_NAC_MRX_RESPONSE_STG, InNacMsxResponseRcvCtl.ctl (120 lines) → IN_NAC_MSX_RESPONSE_STG, InNacRejectResponseRcv.ctl → IN_NAC_ERROR_RESPONSE_STG}

bidirectional

REST/JSON over HTTPS (token endpoint + bulk-upload API + matches API) AND fixed-width batch files; error/match responses also loaded via Oracle SQL*Loader

JSON for the API legs; fixed-width for NCF (daily contributory), MCF (monthly contributory), MRF (daily match request/response) and the inbound match/MSH files

daily sends (IN-SNNACCF-DLY, IN-SNNACMRF-DLY), monthly contributory (IN-SNNACMCF-MLY); daily receives (IN-RCNAC-DLY, IN-RCNACMCH-DLY, IN-RCNACMRR-DLY, IN-RCNACMSH-DLY, IN-RCNACMSX-DLY, IN-RCNACERR-DLY, IN-RCNACSNAP-DLY, IN-RCNACX-DLY); daily disposition callback (IN-NACDISPOSE-DLY)

worker-portal/BATCH/IN/src/resource-mapping/nac-send-ncf-dly-mapping.xml:4-5 (NacSndDlyRecordStream, fixedlength; caseStateAbbr default 'GA', caseBnftType default 'S'), :49/:63/:77/:109 (address/case/client/state sub-records); worker-portal/BATCH/IN/src/resource-mapping/nac-snd-mly-cf-mapping.xml:3; worker-portal/BATCH/IN/src/resource-mapping/nac-snd-mrf-dly-mapping.xml:4; worker-portal/BATCH/IN/src/resource-mapping/nac-rcv-mly-mapping.xml:4-16 (activityType, batchJobId, batchFileName, batchRecordNbr, reqRecId); worker-portal/BATCH/IN/src/resource-mapping/nac-rcv-msh-mapping.xml:4; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/nac/bo/impl/NacSndDlyBOImpl.java:4 (java.net.http.HttpResponse), :82-85 (config KEYS for token URL/user/password and bulk-upload API URL); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/nac/bo/impl/NacMatchResDlyBOImpl.java:5-7,120 (HttpURLConnection, matches-API URL from config); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/nac/bo/impl/NacDisposeBOImpl.java:69,179,193,248 (disposition web-service calls); worker-portal/BATCH/IN/sql-loader-control/InNacMrxResponseRcvCtl.ctl:4 (IN_NAC_MRX_RESPONSE_STG), InNacMsxResponseRcvCtl.ctl:3 (IN_NAC_MSX_RESPONSE_STG), InNacRejectResponseRcv.ctl:4 (IN_NAC_ERROR_RESPONSE_STG); webMethods package worker-portal/IN/webMethods/GAIES_NAC.zip

Mock-relevant facts
  • Pure one-way outbound; there is no inbound TANF response action anywhere. Four distinct quarterly extracts (aggregate / active sample / closed sample / high-performance). Three are active=true — among the few live actions. Fire-and-forget: MFT copies to the partner dir, archives, logs; nothing confirms federal receipt. The HIGHPERFORMANCE action was shipped as its own single-action export dated 01152016, i.e. added late — useful signal that the extract set grows over time.

  • Highest-value mock target on this surface: it is the only partner in BATCH/IN with a live synchronous API leg. Only endpoint PROPERTY KEYS were extracted (NAC_MATCH_RESOLUTION_URL, NAC_X_REQUEST_LOCATION, NAC_FROM_EMAIL) — no URLs, hosts, or credentials. Verbs seen: POST and PATCH. Other WmHttpInterface callers: NacSndDlyBOImpl, NacMatchResDlyBOImpl, Common/bo/DcCaseProgramBO, Common/bo/DcOtherStateBenefitsBO, IN/ejbModule/…​/nac/NacServiceBO, INNACSessionEJBBean.

  • Gateway-as-client. targetNamespace 'nsnacMatch'. The payload carries a 'DrupalTransactionId' field, betraying the vendor’s Drupal-based front end. The SOAP nacMatch contract is only part of the NAC integration — the bulk-token / duplicate / match-resolution URLs in config indicate a newer REST surface (out of my WSDL surface; worth a separate inventory pass).

  • Only 27 \bFNS\b hits — the marker itself is weak because FNS reaches Gateway THROUGH eDRS, NAC, EBT/Xerox and WIC rather than as a named endpoint. The unopened GAIES_FNS.zip webMethods package is the one place a direct FNS interface might be defined; I did not open it (see gaps).

  • Credentials are read from named config keys only — no literal secrets in these files (keys observed at NacSndDlyBOImpl.java:82-85 / NacMatchResDlyBOImpl.java:61-65). Alert codes INT022/INT057 raised on match (NacIndvMatchBOImpl.java:603,611).

  • -VAL suffixed jobs (BI-FSVAL-DLY, BI-TANFVAL-MLY, BI-FSTANFVAL-DLY) re-read the produced file through a validation stream — mocks should support round-tripping.

  • 117 java files — one of the larger interfaces. Multiple response streams (MSX/MRX/reject/match/SNAP) each need their own mock fixture.

GA Vital Records (GAVERS)

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the GTA webMethods ESB (IES_GAVERS.wsProviders.IES_ValidateRecordSearch; endpoint host redacted)

WSDL 1.1; imports vendor namespace [host withheld]

real-time search; daily batch companions (IN-GVRAPARTSR-DLY, IN-GVRAREFCR-DLY, IN-GVRAREFST-DLY, IN-RCGVRAPART-DLY, IN-RCVGVRAREF-DLY)

worker-portal/IEWebApp/WebContent/wsdl/VRServiceIntegration/IES_ValidateRecordSearch.wsdl:62 (service IES_GAVERS.wsProviders.IES_ValidateRecordSearch), :42 (portType IES_ValidateRecordSearch_PortType), :43 (operation IES_VRSearch), vendor namespace import at :5 and :19. Config key VITAL_RECORD_SERVICE_URL in IEApp_Properties/Local/Application.properties. Batch evidence under worker-portal/BATCH/IN/src/batch-fast4j-properties/

inbound

batch file → JAXB record

fixed-position layout; ns http://www.example.org/InMdrsReceiveSchema

batch (wrapper has recordProcessed/recordFailed/recordSkipped)

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/MdrsReceiveInfo.java:46 (226 ln) + …​/MdrsReceiveInfoDocument.java

bidirectional (synchronous send-and-wait)

JMS queue INBVSQ (framework MQ)

FwXMLMessage XML envelope

real-time; explicit send timeout of 50 (units unstated) configured for this queue

worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:26 (INOnTdhBvsMsgVO="INBVSQ"). Timeout: worker-portal/IEWebApp/WebContent/XML/config/services.xml:184 (<sendtimeouts INBVSQ="50" />). Caller: worker-portal/Common/src/gov/state/nextgen/common/bo/INOnTdhBvsBO.java:111 (MSG_VO_CLASS=INOnTdhBvsMsgVO), :196 (sendAndWait(MSG_VO_CLASS, parameterData)). VO present: worker-portal/DA/src/gov/state/nextgen/common/cargo/custom/INOnTdhBvsMsgVO.java:21.

outbound

SOAP via webMethods ESB

WSDL provider path IES_GAVERS.wsProviders.IES_ValidateRecordSearch/…​_Port

real-time

worker-portal/IEApp_Properties/Local/Application.properties:180-187 (comment '#Vital Record WS variables', VITAL_RECORD_SERVICE_URL, VITAL_RECORD_NAME_SPACE, VITAL_RECORD_SERVICE_NAME, VITAL_LOG_SWITCH, VITAL_XML_SWITCH, VITAL_TIME_SWITCH)

bidirectional per canonical header, but NOT IMPLEMENTED

n/a — no outbound partner call exists in the package

doc types matchRequest / matchResponse defined; no wire binding

n/a

worker-portal/IN/webMethods/GAIES_VitalRecords.zip → ns/GAIES_VitalRecords/** contains ONLY the shared utility services (publishLog, publishError, getEnvironment, getGUID, getServerInfo, getServiceName, getCurrentDateString, clearPipeline, getLastError, savePipelineToFile, restorePipelineFromFile) plus matchRequest/matchResponse doc types — no pub.client:http, no wsConsumer, no soapClient step anywhere in the package. Related contract: worker-portal/IEWebApp/WebContent/wsdl/VRServiceIntegration/IES_ValidateRecordSearch.wsdl (service IES_GAVERS.wsProviders.IES_ValidateRecordSearch, op IES_VRSearch, doc/literal, MEP input+output)

outbound

SOAP

WSDL+XSD; doc/matchRequest, doc/matchResponse

real-time

worker-portal/IN/webMethods/GAIES_VitalRecords.zip → ns/GAIES_VitalRecords/services/verifyMatchRequest, ns/GAIES_VitalRecords/wsProvider/verifyMatchRequest_WSD, ns/GAIES_VitalRecords/doc/{matchRequest,matchResponse}

outbound

SOAP via webMethods, IS package IES_GAVERS, service wsProviders.IES_ValidateRecordSearch (Axis2 stub)

WSDL+XSD

real-time record validation

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/vitalrecords/IES_GAVERSWsProvidersIES_ValidateRecordSearchStub.java; common/src/gov/state/nextgen/in/bo/VitalRecordsBO.java; ejbModule/…​/in/VitalRecordsSessionEJBBean.java; webMethods/GAIES_VitalRecords.zip

Mock-relevant facts
  • NEGATIVE FINDING, important for scoping: the Vital Records integration is a SKELETON in this corpus — request/response document types and the logging scaffold exist, but no partner invocation was ever wired. The WSDL IES_ValidateRecordSearch shows the intended synchronous search contract. canopy should treat vital-records verification as GREENFIELD, not as a port of an existing Gateway behavior.

  • 'TDH' = Texas Department of Health — heritage naming. Georgia’s live vital-records path is a separate SOAP interface outside my surface (IN/ejbModule/…​/vitalrecords/IES_GAVERSWsProvidersIES_ValidateRecordSearchStub.java, GAVERS). The INBVSQ queue is the only queue in the catalog with an explicit send timeout, i.e. the only confirmed synchronous request-reply queue.

  • Minimal 7-field record: mdrsId, source, ssn, dob, gender, lastName, deceasedDate. source is the code table (which registry supplied the death record). Note: only lastName — no first name — so matching is SSN/DOB-driven; a canopy death-match mock must reproduce that weak-key characteristic rather than assume full-name matching.

  • Line 182 is a commented-out full endpoint that reveals the canonical ESB URL shape: [host withheld]

  • Gateway-as-client. targetNamespace at :2 embeds an internal webMethods hostname. Vendor (Genesis Systems, [host withheld] is provable from the imported schema namespace.

  • Single-operation interface. Only a wsProvider is present in this export — no wsConsumer artifact, so the downstream call path is not evidenced in this subsurface.

  • Related newborn-reporting path is DB-backed: common/src/gov/state/nextgen/in/bo/InNewBornBO.java + ejbModule/…​/in/INNewBornSessionEJBBean.java.

MAXSTAR / MAXIMUS (appeals vendor)

Direction Transport Format Cadence Evidence

outbound

SOAP over HTTPS via the GTA webMethods ESB (GAIES_PCS.wsProvider.getFinancialSummary_WSD; endpoint host redacted)

WSDL 1.1; vendor namespace http://server.webservice.ga.maximus.com/; financial summary with rollingBalance, totPremiumAmt, nsfFees*, grace amounts, transaction list; typed CustomerNotFoundException fault

real-time; monthly premium batches surround it (IN-PCKCERT-MLY, IN-PCKCOPAY-MLY, IN-RCPCI-MLY, IN-RCPCP-MLY, IN-RCMAXENR-MLY)

worker-portal/IEWebApp/WebContent/wsdl/PCSServiceIntegration/GAIES_PCS_wsProvider_getFinancialSummary_WSD_Port_1.wsdl:145 (service GAIES_PCS.wsProvider.getFinancialSummary_WSD), :127 (portType getFinancialSummary_WSD_PortType), :128 (operation getFinancialSummary), Maximus namespace at :110. Config key PCS_SERVICE_URL in IEApp_Properties/Local/Application.properties. Monthly batch evidence under worker-portal/BATCH/IN/src/batch-fast4j-properties/

bidirectional

batch file + SQL*Loader staging

BeanIO delimited inrcmax-rcv-dly-mapping.xml (4 streams: MaxStarRcvProviderRecords, MaxStarRcvProviderWlyRecords, MaxStarCalendarRecords), csv inrcmaxenr-rcv-mly-mapping.xml, fixed-length inrcmaxexc-rcv-dly-mapping.xml (1/3/118), csv maxstar-snd-dly-mapping.xml; staging VM_PROVIDER_RATES_TEMP

daily (IN-RCMAX-DLY, IN-RCMAXEXC-DLY, IN-SNMAX-DLY, IN-RCMXC-DLY, IN-STGMXC-DLY), weekly (IN-RCMAX-WLY), monthly (IN-RCMAXENR-MLY)

worker-portal/BATCH/IN/src/resource-mapping/inrcmax-rcv-dly-mapping.xml, inrcmaxenr-rcv-mly-mapping.xml, inrcmaxexc-rcv-dly-mapping.xml, maxstar-snd-dly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcmaxTempCtl.ctl

outbound

SOAP over HTTPS via webMethods GAIES_PCS.wsProvider.getFinancialSummary_WSD

WSDL + XSD, two vendored copies (PCKPremium/ and PCSServiceIntegration/). portType getFinancialSummary_WSD_PortType, operation getFinancialSummary. Input doc_getFinancialSummaryInput{custNum}; output doc_getFinancialSummaryOutput{return} or fault doc_customerNotFoundException{CustomerNotFoundException}. Maximus namespaces http://server.webservice.ga.maximus.com/ and http://bizservices.server.webservice.ga.maximus.com/.

real-time, on the applicant’s premium/payment screen

WSDLs: customer-portal/bridgesClient/META-INF/PCKPremium/GAIES_PCS_wsProvider_getFinancialSummary_WSD_Port_1.wsdl:2 (definitions, Maximus namespaces), :7-130 (schemas), :131-139 (portType/operation), :149-151 (service + soap:address); and META-INF/PCSServiceIntegration/GAIES_PCS_wsProvider_getFinancialSummary_WSD_Port_1.wsdl:127-147. Calls: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2609 (callPckPremiumService), :2642 (buildPCKPremiumWebServiceUrl). JAXB/stub: bridgesClient/gov/state/nextgen/ejb/business/services/pcs/ (GAIES_PCSWsProviderGetFinancialSummary_WSDStub.java, DocGetFinancialSummaryInput/Output.java, GetFinancialSummary.java, Return.java, Fault.java) and com/maximus/ga/webservice/server/bizservices/. Referenced from accessEJB via AppConstants.PCK_PREMIUM_WS (sharedApp/…​/AppConstants.java:4536). Endpoint + comment: framework/properties/config/production_env.properties:292 (#Peachcare Kids Payment Information), :293

bidirectional

batch file over SFTP via MFT; a SOAP wsConsumer exists but is UNCONFIGURED; plus a wsProvider facade

flat data file; WSDL + XSD for the service legs

daily (refund, termination, waiver, enrollment, premium change, denial, eligibility, account balance) + monthly (enrollment)

Batch: worker-portal/IN/webMethods/Events_Inbound:194 (PCS_IES_INBOUND_DAILY_ACCOUNT_BALANCE_FILE); '[secret-bearing path withheld]':1358, :4075, :6011, :6399, :6593, :6787, :6981, :7175 (eight IES_PCS_OUTBOUND_* actions). Services: worker-portal/IEWebApp/WebContent/wsdl/PCSServiceIntegration/GAIES_PCS_wsProvider_getFinancialSummary_WSD_Port_1.wsdl (op getFinancialSummary); consumer worker-portal/IN/webMethods/GAIES_PCS_Full_v1.zip → ns/GAIES_PCS/wsConsumer/customerManagementService/node.ndf with tns http://com.maximus.ga.webservice.server/ and portAddress REPLACE_WITH_ACTUAL_URL

bidirectional

batch file over SFTP via MFT

flat data file

daily (provider, certificate) + weekly (payment)

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:3421 (MAXSTAR_IES_INBOUND_DAILY_PROVIDER_FILE), :3547 (IES_MAXSTAR_OUTBOUND_DAILY_CERTIFICATE_FILE), :5817 (MAXSTAR_IES_INBOUND_WEEKLY_PAYMENT_FILE); '[secret-bearing path withheld]':3687

bidirectional

batch file + SQL*Loader stage; partitioned outbound job

MIXED — inrcmax-rcv-dly-mapping.xml has csv AND delimited streams; inrcmaxenr-rcv-mly is csv; inrcmaxexc-rcv-dly is fixedlength; maxstar-snd-dly is csv; loader is pipe-delimited

daily, weekly, monthly (enrollment), plus TEMP/staging variants

jobs …​/batch-jobs/{IN-RCMAX-DLY,IN-RCMAX-WLY,IN-RCMAX-TEMP,IN-RCMAXENR-MLY,IN-RCMAXEXC-DLY,IN-RCMXC-DLY,IN-STGMXC-DLY,IN-SNMAX-DLY}.xml; IN-SNMAX-DLY uses gov.state.nextgen.in.batch.partition (partitioned writer) with resource-mapping/maxstar-snd-dly-mapping.xml; loader worker-portal/BATCH/IN/sql-loader-control/InRcmaxTempCtl.ctl (59 lines, fields terminated by '|') → IE_APP_ONLINE.VM_PROVIDER_RATES_TEMP

inbound

batch file

fixed-width; koala-rcv-dly-mapping.xml

daily

job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCKLAQR-DLY.xml (package …in.batch.koala, mappingFile resource-mapping/koala-rcv-dly-mapping.xml); also referenced from IN-RCMAX-DLY.xml

Mock-relevant facts
  • ASYMMETRIC: eight outbound daily/monthly files but only ONE inbound (account balance) — IES pushes eligibility/enrollment/termination events and pulls back only balances. The wsConsumer customerManagementService has portAddress literally REPLACE_WITH_ACTUAL_URL, i.e. the real-time leg was never wired in this build — a mock should treat PCS as batch-only and treat any real-time PCS call as an unimplemented path.

  • Gateway-as-client. targetNamespace 'nsgetFinancialSummary_WSD'. Vendor identity (Maximus) is provable from the imported namespace, not from a comment. Declares an explicit customFault_customerNotFound fault — canopy’s mock must exercise the fault path, not just the happy path. A duplicate copy exists in the customer-portal repo under both PCKPremium/ and PCSServiceIntegration/.

  • Three-leg cycle with mismatched cadences: IES sends child-care certificates DAILY, receives the provider roster DAILY, and receives payment confirmations WEEKLY. The weekly payment file is the only feedback that a certificate was honored — a 7-day blind window a mock should be able to simulate.

  • PCK = PeachCare for Kids (confirmed by the properties comment at :292 and AppConstants PCK_CASE_NUM:3581, MAGI_AND_PCK_TOA:4732). PCS = Maximus Premium Collection System.

  • Only partner in the tree using BeanIO format="delimited" for the primary inbound file (plus smsoptinoptout and two CO mappings).

  • IN-RCMAX-DLY also pulls in the 'koala' package — the two systems are coupled in the daily receive.

  • Acronym NOT decoded — no descriptive javadoc found in the koala package. Flagged for follow-up.

OCSE — NDNH (national new hire)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

bidirectional (one send record, four receive record types)

batch file → JAXB record

fixed-position layout with explicit fillers; ns http://www.example.org/NDNEWHIRESENDSchema (send) and http://www.example.org/NDNHErrRcv (all receive types share one namespace)

batch — W-4 new-hire near-real-time/weekly, quarterly wage (QW) quarterly, UI quarterly; reporting periods carried in-record (w4ReportingPeriod, qwReportingPeriod, uiReportingPeriod, *FromDt/*ThroughDt)

send worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/NDNEWHIRESENDInfo.java:51; receive wrapper …​/NDNHRcvDocument.java (fields: ndnhErrRcv, ndnhUiRcvInfo, ndnhNewHiresRcvInfo, ndnhQuaterlyWageRcvInfo + recordProcessed/recordFailed/errorInfo); …​/NDNHNewHiresRcvInfo.java (1760 ln), …​/NDNHQuaterlyWageRcvInfo.java (1502 ln), …​/NDNHUiRcvInfo.java (933 ln), …​/NDNHErrRcv.java (349 ln)

bidirectional

batch file via webMethods ActiveTransfer MFT; SQL*Loader into staging

fixed-width — NDNH 1000-byte records; New Hire split into IN_W4_EMPLOYEE_STG and IN_W4_EMPLOYER_STG

NDNH monthly (IN-RCVNDNH-MLY); New Hire daily (NEWHIRE_IES_INBOUND_DAILY_EMPLOYEE_RECORDS_FILE, …​_EMPLOYER_RECORDS_FILE)

worker-portal/BATCH/IN/sql-loader-control/InRcvNdnhMlyCtl.ctl (POSITION (1:1000)); worker-portal/BATCH/IN/sql-loader-control/InRcNewHireEmployeeCtl.ctl (INTO TABLE IN_W4_EMPLOYEE_STG, POSITION (181:181)); InRcNewHireEmployerCtl.ctl (IN_W4_EMPLOYER_STG, POSITION (308:311)); job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCVNDNH-MLY.xml:39-46 (FileSQLLoadBatchlet + controlFilePath); batch packages …​/in/batch/ndnh/ (26 files) and …​/in/batch/newhire/ (12 files)

bidirectional

batch file + SQL*Loader staging

BeanIO fixed-length: inbound 3 records / 75 fields / 1000-char (IN-RCV-NDNH-mapping.xml), outbound 3 records / 36 fields / 200-char (IN-SND-NDNH-mapping.xml); SQL*Loader POSITION (1:1000) into IN_NDNH_RCV_STG

monthly (IN-RCVNDNH-MLY, IN-SNDNDNH-MLY)

worker-portal/BATCH/IN/src/resource-mapping/IN-RCV-NDNH-mapping.xml (stream NdnhRcvRecordStream); worker-portal/BATCH/IN/src/resource-mapping/IN-SND-NDNH-mapping.xml (stream NdnhSndRecordStream); worker-portal/BATCH/IN/sql-loader-control/InRcvNdnhMlyCtl.ctl

inbound

batch file over SFTP via MFT

flat data file (fixed-width)

daily

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:1882 (NEWHIRE_IES_INBOUND_DAILY_EMPLOYEE_RECORDS_FILE), :5566 (NEWHIRE_IES_INBOUND_DAILY_EMPLOYER_RECORDS_FILE)

inbound

batch match file → DB; worker portal reads results via EJB session beans. No wire client in this surface.

not present in this surface (layouts live in the BATCH module)

PARIS conventionally quarterly, NDNH conventionally daily/weekly — NOT asserted anywhere in this surface

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/in/{INPARISInqSessionEJBBean,INDNHSessionEJBBean,INNHSessionEJBBean}.java; common/src/gov/state/nextgen/in/bo/{INParisOutputBO,INNDNHResponseBO,InNewHireBO}.java

bidirectional

batch file + SQL*Loader stage

fixed-width, 1000-byte record with a record-type selector at cols 4-6 ('W4M'); IN-RCV-NDNH-mapping.xml / IN-SND-NDNH-mapping.xml

monthly

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-RCVNDNH-MLY,IN-SNDNDNH-MLY}.xml; loader worker-portal/BATCH/IN/sql-loader-control/InRcvNdnhMlyCtl.ctl lines 3-10: INTO TABLE IE_APP_ONLINE.IN_NDNH_RCV_STG, WHEN ((4:6)='W4M'), SSN POSITION (7:15), RECORD_DATA POSITION (1:1000) PRESERVE BLANKS

bidirectional

batch file (200-byte fixed-width, mainframe-style header/detail/trailer); response also loadable via SQL*Loader

fixed-width 200 bytes; outbound HDR header + MCH detail + trailer, submitterIdentifier 'SNP', submittingStateCd '13'; inbound MTH header + W4M detail + trailer

monthly both directions (IN-SNDNDNH-MLY, IN-RCVNDNH-MLY)

worker-portal/BATCH/IN/src/resource-mapping/IN-SND-NDNH-mapping.xml:5-13 (header: submitterIdentifier default 'SNP', recordIdentifier 'HDR', submittingStateCd default '13', filler to 200), :16-44 (MCH detail incl. ndnhVerifRqstCd, passbackData, ndnhW4matchInd), :44 (trailer); worker-portal/BATCH/IN/src/resource-mapping/IN-RCV-NDNH-mapping.xml:6-15 (MTH header), :17-19 (W4M detail), :83 (trailer); worker-portal/BATCH/IN/sql-loader-control/InRcvNdnhMlyCtl.ctl:3 (IE_APP_ONLINE.IN_NDNH_RCV_STG); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ndnh/bo/impl/NdnhBoImpl.java:171 (job IN-SNDNDNH-MLY), :646 (alert INT069)

Mock-relevant facts
  • Send request (14): submitterIdentifier, recordIdentifier, ssn, person name parts, passbackData, w4SameStateDataIndicator, qwSameStateDataIndicator, uiSameStateDataIndicator + fillers. passbackData is an opaque state-supplied correlation token echoed on every response — a mock MUST round-trip it. W-4/new-hire response (~62): employee name, w4ProcessedDt, employer identity (federalEin, stateEin, dodCd, emplrName + 3 street lines/city/state/zip/zip-ext + foreign-country trio), a second 'optional' employer address block, emplDtOfHire, emplStateOfHire, w4MatchSw, w4SameStateDataSw, w4FromDt/w4ThroughDt, trmtrAgencyCd/trmtrStateCd/trmtrStateAgencyName. Quarterly-wage response (~52) mirrors it and adds qwEmployeeWageAmount, qwNonVerifiableIndicator, qwMatchCode. UI response (~32) adds benefitAmt and claimant address. Error response (11): rejectCd + echoed key. Note the repeated misspelling Quaterly in the type names.

  • One-way inbound only; no outbound request leg exists, so this is an unsolicited push-by-drop feed. TWO CORRELATED FILES (employee records + employer records) arriving as INDEPENDENT scheduled actions — the employer file is the lookup table for the employer keys in the employee file, and nothing enforces ordering. A mock must let tests deliver them out of order to exercise the dangling-employer-reference path.

  • Send side is partitioned (NdnhPartitionMapper) and the produced file is renamed by NdnhRenameFileBatchlet / RenameNDNHFileNameBatchlet — the naming template itself comes from job parameters, not source.

  • 2,449 NDNH hits, concentrated in worker-portal/BATCH (1,091) and DA (721). Two distinct interfaces sharing the marker: federal NDNH (monthly) and state New Hire W-4 (daily) — mock them separately.

  • Grep for X12/EDI markers across the whole worker-portal config tree produced only a false positive (a field at position 834 in this file). No X12 anywhere in worker-portal config.

  • Cadence stated above is domain convention, NOT evidence from this tree — canopy must confirm against the BATCH module before encoding it in a mock schedule.

  • The WHEN clause is the record-type discriminator a mock must reproduce; SSN is at a fixed offset inside the 1000-byte blob.

PeopleSoft (state financials)

Direction Transport Format Cadence Evidence

outbound

batch file via webMethods ActiveTransfer MFT

fixed-width

daily (IES_PEOPLESOFT_OUTBOUND_DAILY_AP_FILE, IES_PEOPLESOFT_OUTBOUND_DAILY_GL_FILE)

MFT events in worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1; batch packages worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/peoplesoft/ and …​/peoplesoftap/; also BOR_IES_INBOUND_QLY_ENROLLMENT_DATA_PSFT_FILE in worker-portal/IN/webMethods/BOR_EVENTS_FILE_11092015

outbound

batch file

BeanIO fixed-length peoplesoft-snd-dly-mapping.xml (2/31/200), peoplesoftap-snd-mly-mapping.xml (4/72/300), peoplesoftpna-snd-mly-mapping.xml (1/31/409, stream PeopleSoftPNASndRecord)

daily (peoplesoft-snd-dly) and monthly (IN-SNPAP-MLY, IN-SNPNA-MLY)

worker-portal/BATCH/IN/src/resource-mapping/peoplesoft-snd-dly-mapping.xml, peoplesoftap-snd-mly-mapping.xml, peoplesoftpna-snd-mly-mapping.xml; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNPAP-MLY.xml, IN-SNPNA-MLY.xml

outbound

batch file over SFTP via MFT

flat data file (accounting interface layout)

daily

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:879 (IES_PEOPLESOFT_OUTBOUND_DAILY_AP_FILE), :1255 (IES_PEOPLESOFT_OUTBOUND_DAILY_GL_FILE); [secret-bearing path withheld]':1552, :2717

outbound

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

daily, two files (accounts payable, general ledger)

worker-portal/IN/webMethods/[secret-bearing path withheld] → IES_PEOPLESOFT_OUTBOUND_DAILY_AP_FILE (InSndPeopleSoftAPRequestDat:2742), IES_PEOPLESOFT_OUTBOUND_DAILY_GL_FILE (InSndPeopleSoftRequestDat:1577)

outbound

batch file

fixed-width; peoplesoft-snd-dly-mapping.xml, peoplesoftap-snd-mly-mapping.xml, peoplesoftpna-snd-mly-mapping.xml

daily (PPS) + monthly (AP, PNA)

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-SNPPS-DLY,IN-SNPAP-MLY,IN-SNPNA-MLY}.xml (packages …in.batch.peoplesoft, …in.batch.peoplesoftap); component scans at worker-portal/BATCH/IN/src/META-INF/batch.xml:33 and :38

outbound

batch file

fixed-width 200 bytes; 'H' header (busnUnitId 5, jvNum 10, jvDt 8, reversal cd/date, transRefNum, lineDescData 30, transTypeCd, ledger 10) + detail lines (journalLineNum, accountNum, fundCd, deptId, progCd, classNum, chartfield1/2, budgetReference, prod, projNum)

daily (IN-SNPPS-DLY)

worker-portal/BATCH/IN/src/resource-mapping/peoplesoft-snd-dly-mapping.xml:6-22 (stream peopleSoftSndRecord, header), :25-40 (detail); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/peoplesoft/util/PeopleSoftGlUtility.java; readers PeopleSoftSndReader / PeopleSoftSndBiReader / PeopleSoftSndBVReader

outbound

batch file

fixed-width; AP stream = 300-byte header (apRowCd 3, vchrRowNum 4, vchrCreateDt 14, apBusUnitId 5, apVndrId 10, apAddrSeqNum 3, apInvoiceId 16, apInvoiceDt 8, apGrossAmt 16, payment terms/method/handling/hold, voucherStyle, accountingDate, apVendorLOC) + detail records 0/1/n; separate PNA stream (31 fields)

monthly (IN-SNPAP-MLY AP, IN-SNPNA-MLY PNA)

worker-portal/BATCH/IN/src/resource-mapping/peoplesoftap-snd-mly-mapping.xml:6-34 (PeopleSoftAPSndRecord header), :36/:52/:68 (Detail0/Detail/Detail1); worker-portal/BATCH/IN/src/resource-mapping/peoplesoftpna-snd-mly-mapping.xml:6-7 (PeopleSoftPNASndRecord); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/peoplesoftap/

Mock-relevant facts
  • Two one-way daily outbound feeds (accounts payable + general ledger). No inbound posting-confirmation exists, so IES has no way to learn that a payment posted — reconciliation is out-of-band. Fire-and-forget.

  • Three reader variants (base, BI, BV) feed the same writer — i.e. multiple GL source streams merged into one daily file.

  • peoplesoftap/batchlet/PeoplesoftProcessBatchlet drives the monthly run; AP and PNA share the util package.

  • Not on the assigned marker list. Relevant to canopy only if benefit-issuance accounting is in scope.

  • Outbound only — no inbound acknowledgement job in this subsurface.

SSA — SDX (SSI data exchange)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

inbound

batch file → XML-marshalled fixed-position record (JAXB SDXInfoDocument wraps N SDXInfo + ErrorMessage list)

fixed-position record layout expressed as XSD/JAXB; namespace http://www.example.org/SDXSchema

daily + monthly (SSA SDX is a daily update / monthly full file; record carries recordEstablishmentDate, recordProcessingDate, lastTransactionDate)

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/SDXInfo.java:229 (@XmlType name="SDXInfo", ~180 fields, 5093 ln); package namespace declared at …​/cargo/generated/package-info.java:8 = "http://www.example.org/SDXSchema"; wrapper …​/SDXInfoDocument.java (recordProcessed, recordFailed, List<SDXInfo>, List<ErrorMessage>)

outbound

JMS queue (framework MQ)

FwXMLMessage XML envelope

not discernible from this surface

worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:25 (gov.state.nextgen.in.cargo.custom.INSndSavrTiersTransMsgVO="INSDXSuspenseQ"); service routing worker-portal/IEWebApp/WebContent/XML/config/services.xml:23 (getINSdxSuspense→ejb/INSdxInSuspenseSessionEJB), :45 (executeSdxInSuspenseBO).

inbound

batch file via webMethods ActiveTransfer MFT; SQL*Loader into IN_SDX_STG

fixed-width, 3000-byte records

daily, monthly, quarterly and annual (SDX_IES_INBOUND_DAILY_INFO_FILE, …​MONTHLY…​, …​ANNUAL…​; jobs IN-RCSDX-DLY / IN-RCSDX-QLY / IN-RCSDX-ANL)

worker-portal/BATCH/IN/sql-loader-control/InRcSDXAnlDetailsCtl.ctl (INTO TABLE IN_SDX_STG, POSITION (1:3000)); InRcSDXQlyDetailsCtl.ctl (same); job defs worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCSDX-DLY.xml, IN-RCSDX-QLY.xml, IN-RCSDX-ANL.xml; MFT events in worker-portal/IN/webMethods/IES_SSA_Inbound

inbound

batch file + SQL*Loader staging

BeanIO fixed-length; 4 record types, 724 fields, 3000-char record; SQL*Loader POSITION (1:3000) into IN_SDX_STG

daily (IN-RCSDX-DLY), quarterly (IN-RCSDX-QLY), annual (IN-RCSDX-ANL)

worker-portal/BATCH/IN/src/resource-mapping/sdx-rcv-mapping.xml (stream SdxRcvRecordStream, 739 lines); worker-portal/BATCH/IN/sql-loader-control/InRcSDXAnlDetailsCtl.ctl; worker-portal/BATCH/IN/sql-loader-control/InRcSDXQlyDetailsCtl.ctl

inbound

batch file over SFTP via MFT

flat data file (fixed-width)

daily / monthly / annual file variants; MFT poll interval=120s

worker-portal/IN/webMethods/IES_SSA_Inbound:1 (SDX_IES_INBOUND_DAILY_INFO_FILE, InRcvSdxDlyDat), :388 (SDX_IES_INBOUND_MONTHLY_INFO_FILE, InRcvSdxMlyDat), :581 (SDX_IES_INBOUND_ANNUAL_INFO_FILE, active=true, InRcvSdxAnlDat); duplicated in ActiveTransfer_Sprint3_v1:2510/3169/5314

inbound

batch file (drop-dir pickup, then Oracle SQL*Loader stage)

fixed-width, 3000-byte record; BeanIO fixedlength mapping

daily + quarterly + annual (three job variants)

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCSDX-DLY.xml (also -QLY, -ANL); reader gov.state.nextgen.in.batch.sdx.chunk.reader.SdxRcvReader at line 80, streamName=SdxRcvRecordStream, mappingFile=resource-mapping/sdx-rcv-mapping.xml at line 83; layout worker-portal/BATCH/IN/src/resource-mapping/sdx-rcv-mapping.xml:4 (stream format="fixedlength" strict="true"), header record lines 5-24, detail record from line 25 (recordLength 0:4, ssn 42:9, claimNumber 51:12); loader worker-portal/BATCH/IN/sql-loader-control/InRcSDXAnlDetailsCtl.ctl:6 SDX_RECORD POSITION (1:3000) PRESERVE BLANKS INTO TABLE IN_SDX_STG

inbound

batch file (mainframe-origin fixed-width); also SQL*Loader staging for quarterly/annual

fixed-width 3000-byte records, strict=true; H header (sdxFileId, stateCodeId, runDate, reelNumber, fileTyp, ssrRunNum) + detail SdxRcvRecord (recordLength 4, recordIdentificationCode, transactionCode, payment/unearned-income/representative-payee/deeming blocks; 724 mapped fields) + trailer

daily (IN-RCSDX-DLY), quarterly (IN-RCSDX-QLY), annual (IN-RCSDX-ANL)

worker-portal/BATCH/IN/src/resource-mapping/sdx-rcv-mapping.xml:4-25 (SdxRcvRecordStream, header), :26-30 (detail head), :363-364 (deemingIndicator @2410 + filler to 3000), :366 (trailer), :398 (SdxRcvRecordStreamStg); worker-portal/BATCH/IN/sql-loader-control/InRcSDXQlyDetailsCtl.ctl:3 and InRcSDXAnlDetailsCtl.ctl:3 (IN_SDX_STG); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/sdx/util/ (SdxRcvHeaderRecord, SdxRcvRecord, SdxRcvTrailerRecord, SDXSequencePartitionMapper, SdxPreProcessBatchlet, SdxDuplicateCheckBatchlet)

Mock-relevant facts
  • Record shape: control (recordLength, recordIdentificationCode, transactionCode, currentRecordIndicator, recordSourceCode); identifiers (ssn:long, claimNumber, winOfRecipient, ssnOfEssentialPerson, ssnOfEligibleSpouse); money (ssiMonthlyAssistanceAmount + 3 historical months, stateSupplementAmount, advancePaymentAmount, earnedIncomeEstimate/Exclusion, overpaymentBalance, currentMonthsRecoveryAmount, federalCountableIncome); dates (applicationDate, denialDate, deathDate, sspEligibilityDate, medicaidEffectiveDate, redeterminationDate); code tables — recipientTypeCode, sexCode, raceCode, zebleyIndicator, maritalStatus, denialCode, alienIndicatorCode, resourceCode{House,Vehicle,LifeInsurance,IncomeProducingProperty,Other}, paymentStatusCode, federalLivingArrangementCode, livingArrangementCodeOptionalStateSupplement, medicaidEligibilityCode, medicareEntitlementCode, multiCategoryIndicator, specialNeedsCode, appealsCode/appealsDecisionCode, foreignLanguageCode, toa (type of assistance), typeofPayeeCode, disabilityPaymentCode, custodyCode, competencyCode. Four repeating matrices: MonthOfChangeMatrix ×10, UnearnedIncomeMatrix ×9, MultipleSSNMatrix ×5, IneligibleSpouseMatrix ×2. Representative-payee block (name/address/legend) present. BANK fields (bankTransitRoutingNumber, bankAccountNumber) are in the layout — treat as sensitive in mocks; no values in source.

  • WHO INITIATES: SSA drops the file; IES polls. Pure one-way inbound — there is NO outbound SDX leg anywhere in the corpus. SYNC/BATCH: batch. ACK: none. RETRY: none; standard 9-task MFT chain with the error branch. Three separate scheduled actions distinguished ONLY by filename glob (Dly/Mly/Anl) — a mock must key off the filename token, not the content.

  • Canonical job shape for the whole IN suite: fileExistenceCheck (pattern match) → singleFileCheck → recordCountCheck → chunk read/process/write → duplicate check → postValidation → archive → alertSkipCnt. All file locations arrive as runtime job parameters (filePath) — no literal paths in any of the 226 XMLs.

  • Largest single layout on this surface (724 fields). Processing rules live in sdx/util/INSdxProcessRule.java + INSdxProcessing.java — worth mirroring in a canopy fixture generator rather than hand-writing records.

  • INSndSavrTiersTransMsgVO absent from tree. 'SAVR' = SAVERR, the Texas legacy system — heritage artifact.

  • 548 hits for \bSDX\b. Inbound-only — no outbound SDX request file found.

  • Largest single fixed-width layout in the tree; highest-value mock target.

State WIC system

Direction Transport Format Cadence Evidence

bidirectional (IES → WIC batch of CaseClient, WIC → IES per-client status response)

batch XML document (msdata-flavoured — schema carries xmlns:msdata=urn:schemas-microsoft-com:xml-msdata, i.e. the counterparty is a .NET/ADO DataSet consumer)

XSD; no targetNamespace, schema id="IESWicSchema"

batch, up to 500 CaseClient per document

outbound worker-portal/IN/xsd/IESWicSchema.xsd:4-9 (root IES → CaseClient 1..500), :12-53 (43 CaseClient fields); inbound worker-portal/IN/xsd/IESResponseWICSchema.xsd:5-11 (root IESResponse → CaseClient 1..500), :12-25 (CaseID, ClientID, Message{Status, FailureReasonCode, FailureReasonDescription})

bidirectional

SOAP via webMethods ESB (eligibility) + daily inbound batch + a Gateway-hosted referral endpoint

WSDL provider path GAIES_WIC.wsProvider.getWICEligibility/…​_Port; BeanIO fixed-length wic-rcv-dly-mapping.xml (1/19/325, stream WicRcvDlyRecords)

real-time SOAP; daily (IN-RCWIC-DLY, CO-RENEWALWIC-DLY, CO-RENEWALWICPBN-DLY)

worker-portal/IEApp_Properties/Local/Application.properties:482 (WIC_SERVICE_URL); worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:145-148 (ShinesWICReferralService); worker-portal/BATCH/IN/src/resource-mapping/wic-rcv-dly-mapping.xml; worker-portal/IEApp_Properties/Local/in.properties:13 (WIC_ELIG_PERIOD); worker-portal/IEApp_Properties/local_batch/Application.properties:299-300 (CO_OUTREACH_EMAIL_CAMPAIGN_WIC_EN/_SP)

bidirectional

SOAP over HTTPS (single-op ASMX-style endpoint) + MFT inbound file

WSDL + XSD (IESWicSchema.xsd / IESResponseWICSchema.xsd); flat file for the batch leg

real-time for the service; daily for the nutritional assessment file

Batch: worker-portal/IN/webMethods/Active_Events_23SEP2015_CR01:415 (WIC_IES_INBOUND_DAILY_NUTRITIONAL_ASSESSMENT_FILE). Service: webMethods GAIES_WIC package canonical header direction=Outbound, endpoint https://<HOST>/ies/ies.asmx, single op IES. Schemas: worker-portal/IN/xsd/IESWicSchema.xsd and IESResponseWICSchema.xsd (files identified; contents NOT read — declared gap). Referral path via ShinesWICReferralService.wsdl / ShinesWicBatch.wsdl

bidirectional

SOAP (Service1Soap) + daily inbound batch file

WSDL+XSD for the SOAP call; standalone XSDs for the file/message payload — IESWicSchema.xsd (IES→WIC) and IESResponseWICSchema.xsd (WIC→IES)

real-time for getWICEligibility; daily for the nutritional-assessment file

worker-portal/IN/webMethods/GAIES_WIC10_10052015.zip → ns/GAIES_WIC/services/getWICEligibility, ns/GAIES_WIC/wsConsumer/getWICEligibility_/connectors/Service1Soap_IES, ns/GAIES_WIC/wsProvider/getWICEligibility, ns/GAIES_WIC/doc/{WICEligibilityRequest,WICEligibilityResponse}; payload schemas at worker-portal/IN/xsd/IESWicSchema.xsd:4-47 and worker-portal/IN/xsd/IESResponseWICSchema.xsd:5-23; daily file WIC_IES_INBOUND_DAILY_NUTRITIONAL_ASSESSMENT_FILE in worker-portal/IN/webMethods/Active_Events_23SEP2015_CR01

bidirectional

SOAP outbound via webMethods (GAIES_WIC.wsProvider.getWICEligibility, Axis2 stub); inbound handled by an asynchronous EJB

XSD-defined; dedicated request/response schema pair IESWicSchema.xsd / IESResponseWICSchema.xsd with JAXB trees generated into separate request and response packages

asynchronous (async EJB on the inbound leg)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/wic/GAIES_WICWsProviderGetWICEligibilityStub.java; worker-portal/IN/xsd/IESWicSchema.xsd; worker-portal/IN/xsd/IESResponseWICSchema.xsd; common/src/gov/state/nextgen/in/wic/{enums,xsd/schema}/; common/src/gov/state/nextgen/in/wicresponse/xsd/schema/; ejbModule/…​/in/{IInWicEligibilityAsyncEJBBean,InWicEligibilityAsyncEJBBean}.java; common/src/gov/state/nextgen/in/bo/INWicEligibilityBO.java; webMethods/GAIES_WIC10_10052015.zip

bidirectional

batch file inbound; SOAP referral outbound via the SHINES WIC batch referral service

fixed-width; wic-rcv-dly-mapping.xml

daily

job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCWIC-DLY.xml (package …in.batch.wic, mappingFile resource-mapping/wic-rcv-dly-mapping.xml); component scan worker-portal/BATCH/IN/src/META-INF/batch.xml:50; outbound referral via ShineWicRefSndBOImpl.java:139

inbound

batch file

fixed-width 325 bytes (clientId 9, wicId 11, caseNum 9, enrolledWicFlag 1, certificateBegin/End 8 each, enrollmentStartDt 8, terminationEffDt 8, clinicId 3, transactionType 2, addrLine1/2 100 each, city 25, state 2, zip 9, county 3, phone 10, dueDate 8, wicType 1)

daily (IN-RCWIC-DLY); a separate clinic-reference update flow (WicUpdateClinic*) runs off the same package

worker-portal/BATCH/IN/src/resource-mapping/wic-rcv-dly-mapping.xml:6-30 (WicRcvDlyRecords fixedlength); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCWIC-DLY.xml (streamName WicRcvDlyRecords); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/wic/ (WicRcvDlyBO + WicUpdateClinicBO with their own reader/processor/writer chains); webMethods worker-portal/IN/webMethods/GAIES_WIC10_10052015.zip

Mock-relevant facts
  • CaseClient shape (IESWicSchema.xsd:12-53): TransactionType, CaseMode, TerminationReasonCode, WICID, CaseID, AddressLine1/2, City, ZipCode, CountyCode, TelephoneNumber, Email, FamilySize, MonthlyIncome, ClientID, BenefitMonth, LastName/FirstName/MiddleName, DateOfBirth, Race, Ethnicity, Gender, CaretakerLastName/FirstName/MiddleName, ParticipationStatus, OldClinicID, ClinicID, WICType, Migrant, Foster, ProofResidency, ProofOfIncome, ReceivesMedicaid, ReceivesTANF, ReceivesFS, DateInitialContact, MaritalStatus, IdentityVerification, SendEmailIndicator, ApplicationSource. Every field is xsd:string including MonthlyIncome and FamilySize — the mock must emit strings, not numbers. Code tables to model: TransactionType, CaseMode, TerminationReasonCode, WICType, ParticipationStatus, ClinicID/OldClinicID, ApplicationSource, FailureReasonCode.

  • IESWicSchema.xsd root <IES> holds 1..500 <CaseClient> — a hard 500-record batch cap, load-bearing for mock pagination. CaseClient fields: TransactionType, CaseMode, TerminationReasonCode, WICID, CaseID, AddressLine1/2, City, ZipCode, CountyCode, TelephoneNumber, Email, FamilySize, MonthlyIncome, ClientID, BenefitMonth, LastName, FirstName, MiddleName, DateOfBirth, Race, Ethnicity, Gender, CaretakerLast/First/MiddleName, ParticipationStatus, OldClinicID, ClinicID, WICType, Migrant, Foster, ProofResidency, ProofOfIncome, ReceivesMedicaid, ReceivesTANF. Response is per-CaseClient {CaseID, ClientID, Message{Status, FailureReasonCode, FailureReasonDescription}} — partial-failure semantics, not all-or-nothing.

  • UNUSUAL SERVICE SHAPE: a single generic operation literally named IES on an .asmx endpoint — the real operation is discriminated INSIDE the payload, so a mock cannot route on SOAPAction/op name and must parse the request body. Request and response have separate top-level schemas (IESWicSchema / IESResponseWICSchema). The daily nutritional-assessment file is a distinct one-way inbound feed.

  • The two top-level XSDs at IN/xsd/ are the cleanest partner contract in the whole surface — best starting point for a canopy WIC mock. Separate WIC referral path exists via SHINES (see SHINES entry).

  • WIC referrals in the other direction go out via the SHINES WIC referral SOAP service (see the SHINES finding), not this file.

TCSG / Board of Regents (Pathways education)

Direction Transport Format Cadence Evidence

outbound

batch file with PGP encryption + SQL*Loader staging

BeanIO fixed-length tcsg-snd-dly-mapping.xml (2/8/63, stream TcsgSndRecords); staging IN_TCSG_ENROLLMENT_STG

daily (IN-SNTCSG-DLY, IN-RCTCSG-DLY) + on-request (IN-SNTCSG-ONR)

worker-portal/IEApp_Properties/local_batch/Application.properties:257-259 (TCSG_PUBLIC_KEYRING, TCSG_USER_ID), :274-275 (TCSG_PRIVATE_KEYRING, TCSG_PASS_PHRASE); worker-portal/BATCH/IN/src/resource-mapping/tcsg-snd-dly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvTcsgEnrollment.ctl

bidirectional

batch file with PGP encryption + SQL*Loader staging

BeanIO fixed-length bor-dly-mapping.xml (1/11/120), bor-snd-mly-mapping.xml (1/11/120), bor-qly-mapping.xml (2/55/236, streams BorRcvRecordStream and BorSndRecordStream in one file); staging IN_BOR_ENROLLMENT_STG (POSITION 1:22)

daily (IN-SNDBOR-DLY, IN-RCBOR-DLY), monthly (IN-SNDBOR-MLY, IN-RCBOR-MLY), quarterly (IN-SNBOR-QLY, IN-RCBOR-QLY, IN-RCBORMRG-QLY), on-request (IN-SNDBOR-ONR)

worker-portal/IEApp_Properties/local_batch/Application.properties:261-263 (comment '#PATHWAYS BOR Interface Public Key', BOREDU_PUBLIC_KEYRING, BOREDU_USER_ID), :277-279 (BOREDU_PRIVATE_KEYRING, BOREDU_PASS_PHRASE); worker-portal/BATCH/IN/src/resource-mapping/bor-dly-mapping.xml, bor-qly-mapping.xml, bor-snd-mly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvBorEnrollmentDly.ctl, InRcvBorEnrollmentMly.ctl

bidirectional

batch file over SFTP via MFT

flat data file

quarterly

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:754 (BOR_IES_INBOUND_QUATERLY_FILE, active=true) + :2636 (IES_BOR_OUTBOUND_QUATERLY_FILE, active=true); BOR_EVENTS_FILE_11092015:136 (BOR_IES_INBOUND_QLY_ENROLLMENT_DATA_PSFT_FILE); [withheld]:580; [secret-bearing path withheld]':2134

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

quarterly

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 → IES_BOR_OUTBOUND_QUATERLY_FILE (sic) (InSndBorQly, [secret-bearing path withheld]), BOR_IES_INBOUND_QUATERLY_FILE (InRcvBorQly); worker-portal/IN/webMethods/BOR_EVENTS_FILE_11092015 → BOR_IES_INBOUND_QLY_ENROLLMENT_DATA_PSFT_FILE

bidirectional

batch file + SQL*Loader stage

fixed-width; bor-dly-mapping.xml, bor-qly-mapping.xml, bor-snd-mly-mapping.xml

daily, monthly, quarterly, plus an ONR (on-request) send

jobs …​/batch-jobs/{IN-RCBOR-DLY,IN-RCBOR-MLY,IN-RCBOR-QLY,IN-RCBORMRG-QLY,IN-SNBOR-QLY,IN-SNDBOR-DLY,IN-SNDBOR-MLY,IN-SNDBOR-ONR}.xml; loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvBorEnrollmentDly.ctl,InRcvBorEnrollmentMly.ctl} → IN_BOR_ENROLLMENT_STG; BO javadoc mentions task 'CHG-BOR-NO-RES' (no-response task creation) in gov/state/nextgen/in/batch/bor/

bidirectional

batch file + SQL*Loader stage

fixed-width; tcsg-snd-dly-mapping.xml

daily; also an ONR send variant; BO javadoc notes 'Daily or Monthly TCSG batch run'

jobs …​/batch-jobs/{IN-RCTCSG-DLY,IN-SNTCSG-DLY,IN-SNTCSG-ONR}.xml; loader worker-portal/BATCH/IN/sql-loader-control/InRcvTcsgEnrollment.ctl → IN_TCSG_ENROLLMENT_STG; javadoc in gov/state/nextgen/in/batch/tcsg/ ('Fetching pathways Case Number for TCSG', 'Create task CHG-TCSG-RES / CHG-TCSG-NO-RES')

bidirectional

batch file; inbound enrollment loaded via SQL*Loader

outbound fixed-width 63 bytes (1-byte header record; detail: ssn 9 zero-padded, indvLastName 20 upper, indvMidName 1, indvFirstName 15, dob 8 via DateZeroHandler, genderCd 1, indvId 9); inbound enrollment layout per control file

daily (IN-SNTCSG-DLY send, IN-RCTCSG-DLY receive); one-time/on-request IN-SNTCSG-ONR (plus a TcsgSndReaderDayZero variant)

worker-portal/BATCH/IN/src/resource-mapping/tcsg-snd-dly-mapping.xml:6-23 (TcsgSndRecords with stringUpperCaseHandler + DateZeroHandler type handlers); worker-portal/BATCH/IN/sql-loader-control/InRcvTcsgEnrollment.ctl; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNTCSG-DLY.xml (streamName TcsgSndRecords), IN-RCTCSG-DLY.xml (SQL*Loader path); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/tcsg/

Mock-relevant facts
  • Both legs active=true. Two inbound variants exist: the generic quarterly file and a PeopleSoft-sourced enrollment-data file (…​_PSFT_FILE) shipped in its own dated export (11092015) — so the same partner has two distinct inbound formats a mock must distinguish. Note the misspelling QUATERLY in the action names (present in the real config; a name-matching mock must reproduce the typo).

  • Custom BeanIO type handlers (StringUpperCaseHandler, DateZeroHandler in in/batch/util) mean uppercase-forcing and zero-date handling are part of the wire contract, not just formatting.

  • The later BOR_EVENTS file renames the inbound job and marks it PeopleSoft-sourced (PSFT) — the enrollment extract comes out of the USG PeopleSoft SIS.

  • Non-response handling is explicit (CHG-BOR-NO-RES task) — a mock should be able to simulate the no-match/no-response branch.

  • bor-qly-mapping.xml carries both directions in one mapping file, distinguished only by stream name.

  • Feeds Pathways work-requirement verification — same response/no-response task pattern as BOR.

GA DOE — school meals direct certification

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

outbound (IES → education agency referral file)

batch XML document

ns [host withheld] (OPI = Office of Public Instruction; the only non-www.example.org state namespace in the package)

batch (direct certification is typically monthly/at-certification)

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{SchoolMealsReferrals,Referral,IndvInfo,AddressInfo,Address,Relationship,ProgramType}.java

outbound

batch file

BeanIO csv doe-snd-dly-mapping.xml (3 records / 29 fields / 254-char, stream DoeSndStream); a sibling doe-snd-dly-mapping.out.xml exists with no stream format declared

monthly (IN-SNDOE-MLY, IN-SNDOEMRG-MLY, IN-SNDOECONV-MLY)

worker-portal/BATCH/IN/src/resource-mapping/doe-snd-dly-mapping.xml; worker-portal/BATCH/IN/src/resource-mapping/doe-snd-dly-mapping.out.xml; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNDOE-MLY.xml

outbound

batch file over SFTP via MFT

flat data file (fixed-width)

monthly

worker-portal/IN/webMethods/ActiveTransfer_Sprint1_v1:297, ActiveTransfer_Sprint2_v1:501, ActiveTransfer_Sprint2_v2:671, ActiveTransfer_Sprint3_v1:1506, [secret-bearing path withheld]:1, '[secret-bearing path withheld]':2328 — all IES_DOE_OUTBOUND_MONTHLY_AFS_AND_TANF_RECIPIENT

outbound

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

monthly

[secret-bearing path withheld] → IES_DOE_OUTBOUND_MONTHLY_AFS_AND_TANF_RECIPIENT, description 'Send monthly active Food Stamps and TANF recipient to DOE'; token InSndMltDoe ([secret-bearing path withheld])

outbound

batch file (CSV produced then converted to a flat file before send)

CSV + fixed-width; doe-snd-dly-mapping.xml declares BOTH format="csv" and format="fixedlength" streams; sibling doe-snd-dly-mapping.out.xml

monthly

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-SNDOE-MLY,IN-SNDOEMRG-MLY}.xml; mappings worker-portal/BATCH/IN/src/resource-mapping/{doe-snd-dly-mapping.xml,doe-snd-dly-mapping.out.xml}; proc worker-portal/BATCH/IN/sql/in_doe_mon_snd.sql (82 lines, IE_APP_ONLINE.IN_DOE_MON_SND(p_success_flag OUT, p_status_message OUT, p_as_of_date IN, p_job_name IN)); javadoc in gov/state/nextgen/in/batch/doe/: 'Convert CSV File to Flat file'

outbound

batch file; two streams (fixedlength primary + csv merge stream), with a SUCCESS-file conversion batchlet and a merge job

fixed-width 254B, 29 fields: caseCounty, genderCode, fsCaseNum, tfCaseNum, indvId, name parts, ssn, dobDt, hohRelationShipTypeCd, financialResponsibility, parsed street address components (stNum, stDirCd, stNm, poStDirCd, aptNum, city, stateCd, zip), head-of-household block (hohFsCaseNum, hohTfCaseNum, hohIndvId, hoh name parts). CSV merge variant has 28 fields plus a single-field DoeMergeHeader

monthly (IN-SNDOE-MLY, IN-SNDOEMRG-MLY)

worker-portal/BATCH/IN/src/resource-mapping/doe-snd-dly-mapping.xml (streams DoeSndCSVStream + DoeSndStream; records DoeMergeHeader, DoeSndChildMergeRecord, DoeSndRecord/DoeSndChildInfoRecord); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNDOE-MLY.xml:54,63,104-106; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/doe/util/SuccesFileConversionBatchlet.java, DOESuccessConversionBatchlet.java, DoeSndOptPartitionMapper.java

Mock-relevant facts
  • SchoolMealsReferrals{referrals} → Referral{individual, addresses, relationships}. IndvInfo (11): indvId, program, firstName, middleName, lastName, suffixName, gender, race, ethnicity, dob, caseNumber. AddressInfo{address, residenceCounty}; Address (8): addressLine1/2, city, state, zipCode, zipCodeExt, phoneNumber, addressType. Relationship (10): relationIndvId, relationshipCode, name parts, gender, race, ethnicity, dob. ProgramType (4): programCode, eligibilityStatus, startDate, endDate — this is the direct-cert payload (SNAP/TANF/FDPIR participation window per child). Code tables: programCode, eligibilityStatus, relationshipCode, addressType, race, ethnicity.

  • One-way outbound, no response leg. Appears in SIX exports (more than any other single action) — it is the longest-lived action in the corpus and the one present in the oldest export ([secret-bearing path withheld], the file that also contains plaintext credentials; path recorded, contents not reproduced). Fire-and-forget.

  • 'SUCCESS' is the GA DOE student information system; two conversion batchlets exist (one appears to be a newer 'Opt'/optimized path with DoeSndBoImplOpt + DoeSndOptReader/Processor/Writer). A stale artifact doe-snd-dly-mapping.out.xml sits alongside the live mapping.

  • Distinct from IES_DOED_OUTBOUND_MONTHLY_DMS_VOTER_FILE (token InSndMlyDMS:2548) which is a voter/driver-services file — the DOE/DOED abbreviations collide in this tree; treat them as two partners.

  • File is named '-dly' but every job that uses it is monthly — do not infer cadence from mapping filenames, only from job-name suffixes.

  • Two-format pipeline (CSV intermediate → flat file) is the notable mock detail.

GVRA (vocational rehabilitation)

Direction Transport Format Cadence Evidence

bidirectional

batch file via webMethods ActiveTransfer MFT; SQL*Loader into IN_BOR_ENROLLMENT_STG, IN_TCSG_ENROLLMENT_STG, IN_GVRA_ENROLLMENT_STG

fixed-width

BOR quarterly (IES_BOR_OUTBOUND_QUATERLY_FILE / BOR_IES_INBOUND_QUATERLY_FILE) plus daily/monthly loads; TCSG daily (IN-RCTCSG-DLY, IN-SNTCSG-DLY/ONR); DOE monthly (IES_DOE_OUTBOUND_MONTHLY_AFS_AND_TANF_RECIPIENT); GVRA daily (IN-GVRAREFCR-DLY, IN-GVRAREFST-DLY, IN-GVRAPARTSR-DLY, IN-RCGVRAPART-DLY, IN-RCVGVRAREF-DLY)

worker-portal/BATCH/IN/sql-loader-control/InRcvBorEnrollmentDly.ctl and InRcvBorEnrollmentMly.ctl (IN_BOR_ENROLLMENT_STG, POSITION (184:188)); InRcvTcsgEnrollment.ctl (IN_TCSG_ENROLLMENT_STG, POSITION (139:146)); InRcGVRARefDlyCtl.ctl and InRcvPathwaysParticipation.ctl (IN_GVRA_ENROLLMENT_STG); MFT events in worker-portal/IN/webMethods/ActiveTransfer_Sprint1_v1, ActiveTransfer_Sprint3_v1, BOR_EVENTS_FILE_11092015; batch packages …​/in/batch/{bor,tcsg,doe,gvra}/

bidirectional

batch file with PGP encryption (dedicated public/private keyring + user id + passphrase keys) + SQL*Loader staging

BeanIO fixed-length gvra-snd-dly-mapping.xml (1/35/542, stream GvraSndRecords); staging IN_GVRA_ENROLLMENT_STG

daily (IN-SNDGVRA-DLY, IN-GVRAPARTSR-DLY, IN-GVRAREFCR-DLY, IN-GVRAREFST-DLY, IN-RCGVRAPART-DLY, IN-RCVGVRAREF-DLY, ED-GVRAROIED051-DLY)

worker-portal/IEApp_Properties/local_batch/Application.properties:253-255 (comment '#PATHWAYS GVRA Interface Public Key', GVRA_PUBLIC_KEYRING, GVRA_USER_ID), :269-271 (GVRA_PRIVATE_KEYRING, GVRA_PASS_PHRASE), :174-175 (CAMPAIGN_ID_GVRA, GVRA_EMAIL_RECEIPIENT), :286 (PTH_ENC_FLAG 'ENABLE / DISABLE PATHWAYS ENCRYPTION'); worker-portal/BATCH/IN/src/resource-mapping/gvra-snd-dly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcGVRARefDlyCtl.ctl, InRcvPathwaysParticipation.ctl

bidirectional

SOAP over GTA ESB, IS package IES_GVRA; three operations in three packages: createReferral, participantSearch, referralStatusCheck

WSDL+XSD

real-time referral + status polling

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/gvra/{createReferral/IESGVRAWsProvidersCreateReferralWSDStub.java, participantSearch/service/, referralStatusCheck/}; common/src/gov/state/nextgen/in/bo/INGVRAResponseBO.java; ejbModule/…​/in/INGVRASessionEJBBean.java

bidirectional

HYBRID: SOAP web service for referral creation (WSDL URL from properties; Axis2 EndpointReference) + batch file/SQL*Loader for participation and referral responses

WSDL (createReferral) for the service leg; fixed-width gvra-snd-dly-mapping.xml + SQL*Loader for the file leg

daily

jobs …​/batch-jobs/{IN-GVRAPARTSR-DLY,IN-GVRAREFCR-DLY,IN-GVRAREFST-DLY,IN-RCGVRAPART-DLY,IN-RCVGVRAREF-DLY,IN-SNDGVRA-DLY}.xml; service worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/services/impl/GVRAServiceImpl.java:485-492 (createReferralWSDLUrl from INConstants.GVRA_CREATE_REFERRAL_W…, options.setTo(new EndpointReference(…​))), :741 (getGVRAWsdl()); loader worker-portal/BATCH/IN/sql-loader-control/InRcGVRARefDlyCtl.ctl → IN_GVRA_ENROLLMENT_STG

bidirectional

batch file; outbound BeanIO fixedlength, inbound SQL*Loader into IN_GVRA_ENROLLMENT_STG

outbound 542B/35 fields (recCd, ssn, name parts, dob, genderCd, indvId, physical + mailing address blocks, two phones with types, email, …); inbound 25B fixed (REC_SSN 1-9, DOB MMDDYYYY 10-17, PARTICIPANT_ID 18-23, STATUS 24-25)

daily (IN-SNDGVRA-DLY out; IN-RCVGVRAREF-DLY in)

worker-portal/BATCH/IN/src/resource-mapping/gvra-snd-dly-mapping.xml (GvraSndRecord, 35 fields, reclen 542); worker-portal/BATCH/IN/sql-loader-control/InRcGVRARefDlyCtl.ctl:1-14 (positions + CREATE_USER_ID CONSTANT "IN-RCVGVRAREF-DLY"); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gvra/chunk/writer/GvraSndWriter.java:61; …​/gvra/util/GvraRcvRefRecord.java

bidirectional

SOAP (Axis2-generated stubs), driven from batch chunks

WSDL-generated stubs: IESGVRAWsProvidersCreateReferralWSDStub (createReferral) and IESGVRAWsProvidersQueryReferralStatusWSDStub (participant search / referral status query)

daily batch-driven (IN-GVRAREFCR-DLY create referral, IN-GVRAREFST-DLY referral status, IN-GVRAPARTSR-DLY participant search, IN-RCGVRAPART-DLY participant receive)

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/services/GVRAService.java:13-14 (imports of the two Axis2 stubs); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gvra/bo/impl/GvraWebServiceSendBoImpl.java:29,37 (GVRAService dependency); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-GVRAPARTSR-DLY.xml:41,57-69,93-103 (ParticipantSearchPreProcessBatchlet + search chunk + post chunk)

Mock-relevant facts
  • BOR = Board of Regents (university system), TCSG = Technical College System of Georgia, DOE = Dept. of Education, GVRA = Georgia Vocational Rehabilitation Agency. Four separate partners sharing an enrollment-verification pattern; all feed TANF/SNAP work-participation and student-exemption rules.

  • GVRA is the clearest example on this surface of a partner with BOTH a file channel and a SOAP channel; mocks need both. Referral-status polling is a post-processor chunk (GvraReferralStatusProcessor/PostProcessor).

  • PGP-per-partner is a distinct structural pattern: <PARTNER>_PUBLIC_KEYRING / _USER_ID / _PRIVATE_KEYRING / _PASS_PHRASE, gated by a single global PTH_ENC_FLAG.

  • create → poll-status is a two-phase async pattern; canopy’s mock needs a status state machine, not a single canned response.

  • Job-name triplet decodes as PARTSR = participation status request, REFCR = referral create, REFST = referral status.

  • Also GvraEmailNotificationBatchlet for operational notification.

IVR / telephony vendor

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoints published by IEWebApp, all under /ws/*)

WSDL 1.1 document/literal; one operation each; per-program response blocks

real-time (caller-driven)

All under worker-portal/IN/ejbModule/META-INF/wsdl/ — IVRAuthorizationService.wsdl:63 service IvrAuthService, :45 portType, :46 op getIvrAuthorizationDetails; FsLookupService.wsdl:67/:49/:50 op FSLookup; TANFLookupService.wsdl:64/:46/:47 op TANFLookup; P4HBLookupService.wsdl:61/:43/:44 op P4HBLookup; MedicaidCaseMatchService.wsdl:79/:61/:62 op getMedicaidCaseMatchDetails; PathwaysCaseMatchService.wsdl:70/:52/:53 op getPathwaysCaseMatchDetails; PCKMatchService.wsdl:57/:39/:40 op getPckMatchDetails; ChildCareMatchService.wsdl:85/:67/:68 op getChildCareMatchDetails; CaseNotesService.wsdl:57/:39/:40 op insertCaseNotes. All nine registered in worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml (IvrAuthService, FsLookupService, TanfLookupService, P4HbLookupService, MedicaidCaseMatchService, PathwaysCaseMatchService, PCKMatchService, ChildCareMatchService, CaseNotesService). Impl classes under worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/ivr/{auth,fsm,tanf,p4hb,mcm,pth,pck,ccm,cn}/

inbound (Gateway EXPOSES SOAP lookup endpoints to the IVR platform) + daily inbound file

JAX-WS SOAP endpoints + batch file + SQL*Loader staging

WSDL; /ws/{CaseNotesService, FsLookupService, IPPCapsLookupService, ChildCareMatchService, MedicaidCaseMatchService, PathwaysCaseMatchService, PCKMatchService, TanfLookupService, P4hbLookupService, IvrAuthService}; staging IN_RCV_IVR

real-time + daily (IN-RCIVR-DLY)

worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:72-116; worker-portal/IEWebApp/WebContent/WEB-INF/web.xml:242 (FwIVRServlet), 272-296, 366-396; worker-portal/IEApp_Properties/Local/Application.properties:382-383 (IVR_LOG_SWITCH), :413-414 (ivr login, IVR_CONVERSION_DATE); worker-portal/BATCH/IN/sql-loader-control/InRcIvrCtl.ctl

inbound (IVR calls IES)

SOAP

WSDL + XSD

real-time, synchronous request/reply

worker-portal/IN/ejbModule/META-INF/jax-ws-catalog.xml registers the IVR family; contracts include ops FSLookup, TANFLookup, P4HBLookup, getPckMatchDetails, getChildCareMatchDetails, getMedicaidCaseMatchDetails, getPathwaysCaseMatchDetails, getIvrAuthorizationDetails — all document/literal, MEP input+output (see /tmp/wsdls.txt scan of all 92 worker-portal WSDLs). Canonical header for GAIES_IVR: direction=Inbound, 'WS call from IVR', targetSystem=IES. Package config in worker-portal/IN/webMethods/GAIES_IVR.sql

inbound (IVR calls IES) with outbound sub-lookups

SOAP

WSDL+XSD; doc/IVRLookupRequest + doc/IVRLookupResponse are the canonical hub shapes

real-time

worker-portal/IN/webMethods/GAIES_IVR_v17_01222016.zip → ns/GAIES_IVR/wsProvider/IVRResponseService, ns/GAIES_IVR/services/{IVRResponseService,IvrAuthenticationService_getIvrAuthenticationDetails,fsLookupService_FSLookup,tanfLookupService_TANFLookup,medicaidCaseMatchService_getMedicaidCaseMatchDetails,childCareMatchService_getChildCareMatchDetails,p4hbLookupService_P4HBLookup,pCKMatchService_getPckMatchDetails}, matching ns/GAIES_IVR/wsConsumer/_/connectors/; registry rows IVR_MainService, IVR_Authentication, IVR_fsLookupService, IVR_tanfLookupService, IVR_medicaidCaseMatchService, IVR_childCareMatchService, IVR_p4hbLookupService, IVR_pCKMatchService in worker-portal/IN/webMethods/GAIES_IVR.sql

inbound

SOAP; TEN JAX-WS provider endpoints on :9106 under /ws/<Service>

WSDL+XSD (9 checked-in WSDLs)

real-time, caller-driven

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/ivr/{auth/IvrAuthService_Service.java:20, cn/CaseNotesService.java:17, ccm/ChildCareMatchService_Service.java:20, fsm/FsLookupService_Service.java:20, mcm/MedicaidCaseMatchService_Service.java:20, p4hb/P4HbLookupService_Service.java:18-20, pck/PCKMatchService_Service.java:20, pth/PathwaysCaseMatchService_Service.java:20, tanf/TanfLookupService_Service.java:20, ipp/IPPCapsLookupService.java}; ejbModule/META-INF/wsdl/{IVRAuthorizationService,CaseNotesService,ChildCareMatchService,FsLookupService,MedicaidCaseMatchService,P4HBLookupService,PCKMatchService,PathwaysCaseMatchService,TANFLookupService}.wsdl; common/src/gov/state/nextgen/in/bo/{InIvrAuthBO,IVRAuthBO,INIvrCaseNotesBO,InIvrChildCareBO,InIvrMedicaidCaseBO,InIvrPckBO,P4HbLookupBo,TanfLookupBo,FSLookupBO,INIVRMatchUtility,INIVRMatchUtilityMA,INIVRMatchUtilityPTH}.java; webMethods/GAIES_IVR*.zip (9 versions)

inbound

batch file + SQL*Loader stage

comma-delimited

daily

job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCIVR-DLY.xml (FileExistenceCheckPatternMatch → FileSQLLoadBatchlet → archive); loader worker-portal/BATCH/IN/sql-loader-control/InRcIvrCtl.ctl (22 lines, fields terminated by ',') → IE_APP_ONLINE.IN_RCV_IVR

Mock-relevant facts
  • Gateway-as-server for all nine; namespaces http://{auth,fsm,tanf,p4hb,mcm,pth,pck,ccm,cn}.ivr.services.business.ejb.nextgen.state.gov/…/. IvrAuthService is the gate: it takes ClientId/Ssn/DOB and returns MatchStatus plus caseworker/supervisor/HOH contact details — so the mock suite needs an auth-then-lookup sequence, not independent stubs. IMPORTANT GAP: sun-jaxws.xml also registers a TENTH IVR endpoint, IPPCapsLookupService (/ws/IPPCapsLookupService, impl gov.state.nextgen.ejb.business.services.ivr.ipp.IPPCapsLookupServiceImpl — CAPS childcare lookup), for which NO .wsdl file exists in the tree. FsLookup response exposes verification flags (IdentityVerified, IncomeVerified, ResidenceVerified, CitizenshipVerified) and NextPeriodicReportingDate/NextRenewalDate over the phone channel — worth a privacy review in canopy.

  • IES IS THE SERVER for the whole IVR family — for mocking purposes IVR is a CLIENT of canopy, not a partner canopy calls. getIvrAuthorizationDetails is the caller-authentication op and is the gate for all the others: a mock IVR client must call it first. One lookup op per program (FS/TANF/P4HB/Medicaid/child-care/Pathways), each returning program-specific status — eight endpoints that must stay behaviorally consistent with each other.

  • Single provider (IVRResponseService) multiplexes to six program lookups plus an authentication call. PCK = PeachCare for Kids, P4HB = Planning for Healthy Babies. Helper flows util/isNullOrBlank and util/setValueForNull indicate the IVR contract requires every field populated (nulls substituted) — mocks must emit filled fields, not omit them.

  • ONLY large inbound-provider family in this surface — canopy must be the server here, not the client. One service per program (fsm=SNAP, tanf, mcm=Medicaid, pck=PeachCare, pth=Pathways, p4hb=Planning for Healthy Babies, ccm=child care, ipp=CAPS/IPP). IvrAuthService is the shared caller-authentication front door — mock it first.

  • Largest inbound SOAP surface Gateway hosts — ten distinct per-program lookup operations.

LIHEAP (energy assistance)

Direction Transport Format Cadence Evidence

outbound query, inbound response (search + detail, two operation pairs)

request/response document → JAXB (no namespace declared — bare/unqualified XML)

unqualified XSD/JAXB; NO targetNamespace on any Liep* type

real-time query

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{LiepReqSearchDocument,LiepInfoSearchReq,LiepResSearchDocument,LiepInfoSearchRes,LiepReqDetailDocument,LiepReqDetailReq,LiepResDetailDocument,LiepReqDetailRes}.java; LiepInfoSearchReq.java:42

bidirectional

batch file + SQL*Loader staging

BeanIO fixed-length liheap-rcv-dly-mapping.xml and liheap-snd-dly-mapping.xml (both 3/99/500), lisnotouch-rcv-dly-mapping.xml (1/60/1000, class …​in.batch.lis.util.LisReceiverRecord); staging IN_RCVLIHP_RES_STG

daily (IN-RCLEP-DLY, IN-RCLIS-DLY, IN-SNLEP-DLY, IN-RCVLIHP-DLY)

worker-portal/BATCH/IN/src/resource-mapping/liheap-rcv-dly-mapping.xml, liheap-snd-dly-mapping.xml, lisnotouch-rcv-dly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvlihpCtl.ctl

bidirectional

batch file over SFTP via MFT

flat data file

daily both directions

worker-portal/IN/webMethods/ActiveTransfer_Sprint1_v1:223 (LIHEAP_IES_INBOUND_DAILY_APPLICATION_FILE) + :520 (IES_LIHEAP_OUTBOUND_DAILY_APPLICATION_FILE); repeated in Sprint2_v1:376/877, Sprint2_v2:546/1047, Sprint3_v1:1130/2259, Events_Inbound:1, [secret-bearing path withheld]':5236

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

daily both directions

worker-portal/IN/webMethods/ActiveTransfer_Sprint1_v1 → LIHEAP_IES_INBOUND_DAILY_APPLICATION_FILE ('Receive Application File from EAP', token InRcvLIHEAPDlyDat, [secret-bearing path withheld]), IES_LIHEAP_OUTBOUND_DAILY_APPLICATION_FILE (token InSndLIHEAPDlyDat)

bidirectional

batch file + SQL*Loader stage

fixed-width for liheap-rcv-dly / liheap-snd-dly; comma-delimited for the LIHP response loader

daily

jobs …​/batch-jobs/{IN-RCLEP-DLY,IN-SNLEP-DLY,IN-RCVLIHP-DLY}.xml; loader worker-portal/BATCH/IN/sql-loader-control/InRcvlihpCtl.ctl (31 lines, fields terminated by ',') → IE_APP_ONLINE.IN_RCVLIHP_RES_STG

bidirectional

batch file (BeanIO fixedlength both directions); a second inbound variant is comma-delimited via SQL*Loader into IE_APP_ONLINE.IN_RCVLIHP_RES_STG

fixed-width 500B with header (recordType, createDate, createTime, controlNumber, hStatus) and trailer (… recordCount, tStatus); 86 detail fields keyed on ssn+ccyy: aplPgmTyp, aplSeqno, recDletInd, aplVoidInd, aplPyStsCd, aplDnlCd, aplPymtTyp, aplDt/aplAuthDt/aplVoidDt/aplPdDt/aplRefndDt, aplTmStmp, aplBtchno, address block, aplLvgQtr…. CSV variant uses EAP_-prefixed columns (EAP_SSN, EAP_APL_NME, EAP_DATE_OF_BIRTH, EAP_APL_AGE, EAP_APL_SX_CD, EAP_RACE_CD, EAP_APL_ETHNC_CD, …) with embedded double quotes stripped

daily (IN-RCLEP-DLY in, IN-SNLEP-DLY out; separate IN-RCVLIHP-DLY for the CSV variant)

worker-portal/BATCH/IN/src/resource-mapping/liheap-rcv-dly-mapping.xml; liheap-snd-dly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvlihpCtl.ctl:1-14; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/liheap/util/LiheapCommonRecord.java, LiheapMetaCommonRecord.java

Mock-relevant facts
  • SECURITY-RELEVANT SHAPE: both request types carry username and password as ordinary in-payload elements — LiepInfoSearchReq{username, password, ssn, lastName, firstName, middleName} and LiepReqDetailReq{username, password, lieapID, clientID}. No credential VALUES appear in the source; only the field declarations. A canopy mock must accept-and-ignore these fields rather than reproduce the pattern; flag this as a modernization must-fix (move to transport auth). Search response (7): name, ssn, dob, clientID, lieapID, address, county. Detail response (12): name, ssn, dob, eligibilityBeginDate, eligibilityEndDate, clientID, lieapID, address, city, state, zipCode, county. Note also recLiheapInd and approvedForOrReceivingLIEAP appear on the portal-side schemas (SS_FullCaseDetails.xsd, mt Expenses).

  • Symmetric daily application exchange (10 action instances across exports — one of the most consistently redeployed pairs). Both directions carry 'APPLICATION' files, so the same logical entity flows both ways; a mock must distinguish by direction/dir, not by content shape.

  • Send and receive layouts are symmetric (same 86 fields, same 500B envelope) — one mock layout serves both. Two coexisting inbound formats (fixed 500B vs quoted CSV) is a genuine fork worth confirming with ops.

  • Send and receive layouts are symmetric (identical 3/99/500 shape) — a single mock record generator serves both.

  • Also present in Events_Inbound with a 7200s poll interval and startDate 2015/04/23.

SOLVE (DHS customer contact)

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1; SolveTriggerRequest(activityType) and SolveEmailRequest → responseCode/responseDescription/solveTrackingNum

real-time, with a companion daily batch (batch job IN-SOLVE-DLY)

worker-portal/IEWebApp/WebContent/WEB-INF/wsdl/SolveIntegration.wsdl:70 (service SolveIntegrationService), :39 (portType SolveIntegrationPortType), :40 (operation createIntTrigger), :44 (operation sendEmail); duplicate at worker-portal/IEWebApp/WebContent/wsdl/SelfServiceIntegration/SolveIntegration.wsdl:70; sun-jaxws.xml endpoint SolveIntegrationService, url-pattern=/SolveIntegrationService, impl SolveIntegrationImpl; batch cadence evidence worker-portal/BATCH/IN/src/batch-fast4j-properties/IN-SOLVE-DLY-fast4jCustomDAOsList.properties

inbound

n/a

n/a

n/a

VLP: customer-portal/sharedApp/gov/state/nextgen/access/management/applications/RMCResponseProfileManager.java:7657 — typeResponseMap.put(String.valueOf(VOLUNTEER_PAYMENT), "VLP"), i.e. VLP = 'Volunteer Payment' income subtype, NOT 'Verify Lawful Presence' (16 hits, all customer-portal, all this meaning). FIS: worker-portal/CaseUtilities/src/com/deloitte/casecopy/utils/PropertyLoader.java:78 — FileInputStream fis = null (74 hits, all local variable names; the EBT vendor FIS is absent). HUB: worker-portal/IEWebApp/WebContent/js/plotly/plotly-1.52.2.min.js plus NIEM hix enumerations (46 hits; the real hub is FDSH). CAPS: partially worker-portal/IEWebApp/WebContent/js/plotly/plotly-1.52.2.min.js (8 of 226 hits).

bidirectional

Gateway-hosted SOAP endpoint (/SolveIntegrationService) + batch

WSDL

daily (IN-SOLVE-DLY, IN-VIRTUALSCHOOLSOLVE-DLY), weekly (IN-SOLVEREN-WLY, IN-SOLVETN-WLY)

worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:149-152; worker-portal/IEApp_Properties/Local/Application.properties:494-496 (comment '#Solve Campaign id', SOLVE_CAMPAIGN_ID, SOLVE_CAMPAIGN_ID_ES); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SOLVE-DLY.xml, IN-SOLVEREN-WLY.xml, IN-SOLVETN-WLY.xml, IN-VIRTUALSCHOOLSOLVE-DLY.xml

outbound

SOAP, direct service SolveIntegrationService at /cpsecure/SolveIntegrationService?wsdl

WSDL + XSD. portType SolveIntegrationPortType, 2 operations. createIntTrigger: SolveTriggerRequest{solveTrackingNum} → SolveIntegrationResponse{responseCode, responseDescription}. sendEmail: SolveEmailRequest{solveTrackingNum, activityType} → SolveIntegrationResponse

real-time, event-driven on Solve benefit submit/change

WSDL: customer-portal/bridgesClient/META-INF/wsdl/SolveIntegration.wsdl:2 (definitions), :4-25 (schema), :39-49 (portType, 2 operations), :70-72 (service + soap:address). Call: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2837-2876 (createSOL10TriggerandSendEmail — createIntTrigger at :2868, sendEmail at :2874), imports at :144-146, endpoint key SOLVE_INTEGRATION_SERVICE at the same file. CONSUMER IN MY SURFACE: accessEJB/ejbModule/gov/state/nextgen/access/business/services/SolveBenefitsEJBBean.java:633-634 (activityType "IN") and :1526-1527 (activityType "IR"). Endpoint: framework/properties/config/production_env.properties:188

bidirectional

batch file + SQL*Loader stage

comma-delimited (virtualSchoolDistrictCtl.ctl)

daily (SOLVE, virtual school) + weekly (REN = renewal, TN = ?)

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-SOLVE-DLY,IN-SOLVEREN-WLY,IN-SOLVETN-WLY,IN-VIRTUALSCHOOLSOLVE-DLY}.xml (package …in.batch.solve); loader worker-portal/BATCH/IN/sql-loader-control/virtualSchoolDistrictCtl.ctl (8 lines, fields terminated by ',') → IE_SSP_OWNER.CP_VIRTUAL_SCH_DST

inbound

DB-mediated (paginated DB reader over staging cargos) for SOLVE; SQL*Loader CSV for the virtual-school district file

no wire layout in source for SOLVE (DB cargos: InSolveApplicationCargo, InSolveChildProviderCargo, InSolveIndvPrvdrDtlCargo, InSolveTriggerCargo); virtual-school file is comma-delimited CSV

daily (IN-SOLVE-DLY, IN-VIRTUALSCHOOLSOLVE-DLY); weekly renewals/terminations (IN-SOLVEREN-WLY, IN-SOLVETN-WLY)

worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/solve/chunk/reader/SolveReader.java:1-45 (AbstractPaginatedItemReader over InSolveChildProviderCargo — DB, not file); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/solve/bo/impl/InSolveBoImpl.java:20-49 (SOLVE cargos + SolveEmailNotificationBO), :259,273,472 (WEBSERVICES logging category on email-notification failures); worker-portal/BATCH/IN/sql-loader-control/virtualSchoolDistrictCtl.ctl:5 (IE_SSP_OWNER.CP_VIRTUAL_SCH_DST); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SOLVE-DLY.xml

Mock-relevant facts
  • Recording these explicitly so downstream agents do not create phantom partners. ZERO-HIT markers on the assigned list: Conduent (0), X12 (0), DXC (0), HP ES (0), and no genuine EDI 834/270/271/999 transaction handling anywhere in either repo. TALX (5), NUMIDENT (7) and BEER (4) are real-but-vestigial. 1099 (381 hits) was not run down — see gaps.

  • Honest gap: whatever populates the SOLVE staging tables is upstream of this surface (no transport visible here). Treat as an internal boundary unless a later pass finds the loader.

  • Acronym NOT decoded. Note the loader targets the IE_SSP_OWNER schema (self-service portal / customer-portal side), not IE_APP_ONLINE — a cross-portal write.

  • Gateway-as-server. targetNamespace 'solve.services.business.ejb.nextgen.state.gov'. Two identical copies of the WSDL in the tree.

  • activityType codes observed: "IN" (initial) and "IR" (change/report). Method name references SOL10.

SUCCESS (legacy eligibility system)

Direction Transport Format Cadence Evidence

bidirectional

batch file via webMethods ActiveTransfer MFT

fixed-width

daily during conversion (SUCCESS_IES_INBOUND_DAILY_SUCCESS_FILE, SUCCESS_IES_INBOUND_DAILY_INTERIM_CONVERSION_FILE, IES_SUCCESS_OUTBOUND_DAILY_FLAGGING_FILE); one-time (P4HB_IES_INBOUND_ONE_TIME_CONVERSION_FILE, VIDA_IES_INBOUND_ONE_TIME_CONVERSION_FILE, COMPASS_IES_INBOUND_INTERIM_CONVERSION_FILE)

worker-portal/IN/webMethods/ActiveTransfer_Success_Events; worker-portal/IN/webMethods/P4HB_VIDA_COMPASS_IES_EVENTS_DEV_15OCT15_1021; worker-portal/IN/webMethods/IES_SUCCESS_SVESCITIZEN_FILE_11122015; worker-portal/IN/webMethods/IES_SUCCESS_OUTBOUND_CONVERSION_PCKP4HB_FILE_11032015

bidirectional

batch file merge/split (EM-* jobs in CV_INFORM)

BeanIO fixed-length em-merge-file-mapping.xml (1/16/137, stream SVESMergeRecords)

daily (EM-IESIN-DLY, EM-IESBO-DLY, EM-SUCCESSBO-DLY, EM-SUCCESSIN-DLY, EM-SNSUCFL-DLY) + on-request conversion jobs

worker-portal/BATCH/CV_INFORM/src/META-INF/batch-jobs/ (EM-IESIN-DLY.xml, EM-SUCCESSIN-DLY.xml, EM-SUCCTOIES-ONR.xml, EM-SNSUCFL-DLY.xml, EM-MRGEFIL-ONR.xml, EM-EXBDEL-SYSRELBO-ONR.xml); worker-portal/IEApp_Properties/Local/Application.properties:376-377 (FFM routing comment naming SUCCESS/IES); worker-portal/BATCH/IN/src/resource-mapping/ (federal-split-mapping.xml splits federal files between IES and SUCCESS)

bidirectional

batch file over SFTP via MFT

flat data file

daily + one-time conversion events

worker-portal/IN/webMethods/ActiveTransfer_Success_Events:1 (SUCCESS_IES_INBOUND_DAILY_SUCCESS_FILE), :139 (SUCCESS_IES_INBOUND_DAILY_INTERIM_CONVERSION_FILE), :277 (IES_SUCCESS_OUTBOUND_DAILY_FLAGGING_FILE), :415 (IES_SUCCESS_OUTBOUND_DAILY_INTERIM_CONVERSION_FILE); BOR_EVENTS_FILE_11092015:1 and IES_SUCCESS_OUTBOUND_CONVERSION_PCKP4HB_FILE_11032015:1 (IES_SUCCESS_OUTBOUND_CONVERSION_PCKP4HB_FILE); IES_SUCCESS_SVESCITIZEN_FILE_11122015:1 (IES_SUCCESS_OUTBOUND_DLY_SSA_SVESCITIZEN_SPLITFILE); EMPI_Inbound:195 (SUCCESS_EMPI_INBOUND_DAILY_File)

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

daily (flagging, interim conversion both directions, SUCCESS file in); one-time (P4HB, VIDA conversion)

worker-portal/IN/webMethods/ActiveTransfer_Success_Events → IES_SUCCESS_OUTBOUND_DAILY_FLAGGING_FILE, IES_SUCCESS_OUTBOUND_DAILY_INTERIM_CONVERSION_FILE, SUCCESS_IES_INBOUND_DAILY_INTERIM_CONVERSION_FILE, SUCCESS_IES_INBOUND_DAILY_SUCCESS_FILE; worker-portal/IN/webMethods/P4HB_VIDA_COMPASS_IES_EVENTS_DEV_15OCT15_1021 → COMPASS_IES_INBOUND_INTERIM_CONVERSION_FILE, P4HB_IES_INBOUND_ONE_TIME_CONVERSION_FILE, VIDA_IES_INBOUND_ONE_TIME_CONVERSION_FILE; worker-portal/IN/webMethods/IES_SUCCESS_OUTBOUND_CONVERSION_PCKP4HB_FILE_11032015 → IES_SUCCESS_OUTBOUND_CONVERSION_PCKP4HB_FILE

bidirectional

webMethods event flows + MFT file conversion + a SOAP indicator check (GAIES_EMPI.wsProvider.checkForSuccessIndicatorService)

file-based conversion flows + WSDL for the indicator check

scheduled file conversion + event-driven

worker-portal/IN/common/src/gov/state/nextgen/in/bo/CheckSuccessClientIndicatorBO.java; ejbModule/gov/state/nextgen/ejb/business/services/empi/checkClient/GAIES_EMPIWsProviderCheckForSuccessIndicatorServiceStub.java; webMethods/IES_SUCCESS_OUTBOUND_CONVERSION_PCKP4HB_FILE_11032015; webMethods/IES_SUCCESS_SVESCITIZEN_FILE_11122015; webMethods/'SUCCESS modified WSDL_EMPI_{Kristi,V1,V2}.zip'; webMethods/ActiveTransfer_Success_Events

bidirectional

batch file over SFTP; EBCDIC control-character cleanup applied on ingest

flat text, fixed names INTERIM_CONVERSION_IES.TXT, FLAGGING_FILE_SUCCESS.TXT, PCKP4HB_CLIENT.TXT, SUCCESS_IN_FILE.txt; prefix-matched dated variants INTERIM_CONVERSION_IES_*, FLAGGING_FILE_SUCCESS_*

daily; plus on-request (ONR) conversion runs

worker-portal/BATCH/CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/batchlet/OutboundFileMoveBatchlet.java:119-129 (INTERIM_CONVERSION_IES.TXT → SFTP), :134-142 (FLAGGING_FILE_SUCCESS.TXT → SFTP), :146-147 (PCKP4HB_CLIENT.TXT). CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/batchlet/CvIEStoSuccessBatchlet.java:114 (prefix array {"FLAGGING_FILE_SUCCESS_","INTERIM_CONVERSION_IES_"}). Jobs: CV_INFORM/src/META-INF/batch-jobs/EM-SNSUCFL-DLY.xml, EM-SUCCESSBO-DLY.xml, EM-SUCCESSIN-DLY.xml, EM-SUCCINTRMIN-ONR.xml, EM-SUCCTOIES-ONR.xml, EM-IESIN-DLY.xml, EM-IESBO-DLY.xml, EM-IES_SYSRELBO-ONR.xml, EM-MRGEFIL-ONR.xml. EBCDIC handling: FW/src/gov/state/nextgen/framework/batch/util/batchlet/NGBatchCleanEBCDICCharsBatchlet.java:149,172 (isEBCDICControl), NGBatchCleanEBCDICCharsZeroBatchlet.java.

Mock-relevant facts
  • COEXISTENCE PATTERN canopy will face directly during its own cutover: a daily two-way file exchange plus a 'flagging' file telling the legacy system which cases IES now owns, plus one-time conversion files shipped as individually-dated single-action exports (11032015, 11122015). IES_SUCCESS_OUTBOUND_DLY_SSA_SVESCITIZEN_SPLITFILE shows SSA data being SPLIT and forwarded to the legacy system — a re-disclosure path worth flagging in canopy’s own design. No ack, no reconciliation file.

  • The EBCDIC cleanup batchlets are the strongest evidence of mainframe-origin data on this path — a canopy mock of the SUCCESS feed should be able to emit EBCDIC control bytes and NUL padding, because the production code exists specifically to strip them. This is also the largest job family on my surface: CV_INFORM holds 260 of the ~600 batch-job XMLs, but the great majority are CV-*-ONR one-time Informatica conversion/validation jobs (see summary), not recurring partner interfaces.

  • The '-SPT' (split) and '-MRG' (merge) job families exist specifically to fan federal partner files out to, and fan responses back in from, the two coexisting eligibility systems. Canopy’s mocks likely need only the IES half but must tolerate the split file headers.

  • Migration-era interfaces — likely NOT needed as canopy mocks except as historical context, but they define the SUCCESS record shapes that other partners still echo. SUCCESS also appears in EMPI_Inbound as SUCCESS_EMPI_INBOUND_DAILY_File.

  • SUCCESS was Georgia’s pre-Gateway eligibility system. Historically interesting as a precedent for canopy’s own Gateway-migration cutover, but NOT an ongoing partner interface — exclude from the live partner mock set.

  • Conversion-era interface. Likely fully retired — canopy should confirm before mocking, but the SVESCITIZEN and PCK/P4HB file flows document the legacy record shapes.

ACF — TANF federal reporting

Direction Transport Format Cadence Evidence

outbound (federal reporting)

batch file → JAXB record

ACF flat-file layout (header / data rows / trailer per section); ns http://www.example.org/TANFSchema, …​/TANFSchemaSection3, …​/TANFSchemaSection4

quarterly (calQuarter on every header) with monthly rows (reportMonthYear)

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{TanfDocumentSectionOne,TanfHeaderSectionOne,TanfCaseSectionOne,TanfFamily,TanfAdult,TanfChild,TanfFooterSectionOne,TanfAggrRptDocument,TanfAggregateReport,TanfHeaderSectionThree,TanfFooterSectionThree,TanfWorkMsrRptDocument,TanfWorkMeasureReport,TanfHeaderSectionFour,TanfFooterSectionFour}.java; TanfFamily.java:83

outbound

batch file via webMethods ActiveTransfer MFT

fixed-width

quarterly (IES_TANF_OUTBOUND_ACTIVE_QUATERLY_FILE, IES_TANF_OUTBOUND_CLOSED_QUATERLY_FILE, IES_TANF_OUTBOUND_AGGREGATE_QUATERLY_FILE, IES_TANF_OUTBOUND_HIGHPERFORMANCE_QUARTERLY_FILE); jobs IN-TANFTRG-QLY, IN-TANFTRG-MLY, IN-TANFTRG-ODQLY, IN-TANFRPT-MLY

MFT events in worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 and IES_TANF_OUTBOUND_HIGHPERFORMANCE_Event_01152016; batch package worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/tanf/; job defs IN-TANFTRG-QLY.xml, IN-TANFTRG-MLY.xml, IN-TANFTRG-ODMLY.xml, IN-TANFTRG-ODQLY.xml, IN-TANFRPT-MLY.xml

outbound

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file; layouts not in this subsurface

quarterly

worker-portal/IN/webMethods/[secret-bearing path withheld] → IES_TANF_OUTBOUND_ACTIVE_QUATERLY_FILE (sic, 'QUATERLY') (InSndActiveQly:4487), IES_TANF_OUTBOUND_CLOSED_QUATERLY_FILE (InSndTANFClosedQly:7975), IES_TANF_OUTBOUND_AGGREGATE_QUATERLY_FILE (InSndTANFAggQly:1771); worker-portal/IN/webMethods/IES_TANF_OUTBOUND_HIGHPERFORMANCE_Event_01152016 → IES_TANF_OUTBOUND_HIGHPERFORMANCE_QUARTERLY_FILE

outbound

batch file (with merge companions)

fixed-width; TanfActiveQlyRecord.xml, TanfClosedQlyRecord.xml, TanfAggregateQlyRecord.xml, tanf-highperf-snd-qly-mapping.xml

monthly + quarterly, plus on-demand variants (ODMLY / ODQLY)

jobs …​/batch-jobs/{IN-SNTAC-MLY,IN-SNTAC-QLY,IN-SNTAR-MLY,IN-SNTAR-QLY,IN-SNTCL-MLY,IN-SNTCL-QLY,IN-SNTHP-MLY,IN-SNTHP-QLY,IN-SNTHPMRG-QLY,IN-TANFRPT-MLY,IN-TANFTRG-MLY,IN-TANFTRG-QLY,IN-TANFTRG-ODMLY,IN-TANFTRG-ODQLY}.xml (package …in.batch.tanf); mappings in worker-portal/BATCH/IN/src/resource-mapping/ (all four format="fixedlength")

outbound

batch file

fixed-width. Case-level: 156-byte HEADER (literal 'HEADER', calendarQuarter 5, dataType 1, stateFipsCode default '13', tribeCode '000', programType 'TAN', editIndicator '1', encryptionIndicator, updateIndicator) + T1/T2/T3 active records (T1: recordType 2, reportingMonth 6, caseNumber 11, countyFIPSCode 3, stratum 2, zipCodeFirst5, fundingStream, disposition…​) + TRAILER; closed-case file (T4/T5 shape) and aggregate file (T6 shape) use the same header/trailer; High Performance file = HEADER(26)/detail(reportingYear 4, reportingMonth 2, ssn 9, caseNumber 11)/TRAILER

quarterly (IN-SNTAC-QLY active, IN-SNTCL-QLY closed, IN-SNTAR-QLY aggregate, IN-SNTHP-QLY / IN-SNTHPMRG-QLY high performance, IN-TANFTRG-QLY); monthly variants (IN-SNTAC-MLY, IN-SNTCL-MLY, IN-SNTAR-MLY, IN-SNTHP-MLY, IN-TANFTRG-MLY, IN-TANFRPT-MLY); on-demand IN-TANFTRG-ODMLY / ODQLY

worker-portal/BATCH/IN/src/resource-mapping/TanfActiveQlyRecord.xml:7-21 (TanfActiveQlyFileD header), :22 (T1), :72 (T2), :146 (T3), :189 (trailer); TanfClosedQlyRecord.xml:7-9,25,41,75,111; TanfAggregateQlyRecord.xml:7-8,21,72; tanf-highperf-snd-qly-mapping.xml:6-30; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/tanf/ (Active/Close/Aggregate/HighPerf send BOs + partition and merge batchlets); helpers worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/util/InTanfBatchProcessHelper.java, InTanfBatchMlyProcessHelper.java, InTanfBatchProcessUtil.java; webMethods event worker-portal/IN/webMethods/IES_TANF_OUTBOUND_HIGHPERFORMANCE_Event_01152016

Mock-relevant facts
  • Header (Sec 1 & 3, 9 fields): title, calQuarter, dataType, stateFipsCode, tribeCode, programType, editInd, encryptionInd, updateInd. Footer: title, numRecTrans, blank. Section 1 = 3 record types. TanfFamily (~48): caseNum, fipsCode, stratum, addrZip5, fundingStream, disposition, newApplication, numFamilyMembers, typeFamilyWp, receivesMa/FoodStamps/SubChildcare/SubHousing, foodStampsAmt, subChildCareAmt, childSupportAmt, amountFamilyCr, benefitAmt + benefitMonthsCount, tanfChildcareAmt/ChildCount/MonthsCount, transportationAmt/MonthsCount, transServicesAmt/MonthsCount, otherAmt/MonthsCount, sanction family (totalAmtReductionsSanc, workReqSancSw, famSancAdultNoDiplomaSw, sancTeenParentNotAttnSw, nonCooWithChildSupport, failureComplyIndv, otherSanc), recoupOfPriorOverPymtAmt, totalAmtRedOtherRsns, familyCap, reductionReceipt, otherNonSanc, waiverEval, isFlyExemptTimeLimit, reasonForClosure. TanfAdult (~72) is the work-participation record: 12 activity families each as Hrs/Ea/Hol triplets (workExperience, onJobTraining, jobSearch, communityService, vocationalEduTraining, jobSkillsTrngEmpRel, eduRelatedToEmp, satisfactorySchAttend, prvdCcServicesInd), unsubEmployment, subsidizedPrivate/PublicEmployment, deemedHrsOverallRate, deemedHrsTwoParentsRate, workEligibleIndicator, workPartStatus, numOfMonthsFedTl, numMonthsRemainingStTl, currentMonthExemptStTl, income (earnedIncomeAmt, earnedIncomeTaxCreditAmt, socialSecurityAmt, ssiAmt, workersCompAmt, otherUnernIncAmt), demographics (5 race slots + ethnicity, familyAffliation, relationshipToHoh, educationLevelCd, citizenship, coopWithChildsupport, maritalStatusCd). TanfChild (~22) is the reduced form. Section 3 aggregate: 16 measures × 3 monthly columns (apps, approved, denied, assistance amount, families, 1-/2-/no-parent families, recipients, adult/child/noncustodial recipients, births, out-of-wedlock births, closed cases). Section 4 work measure is a thin per-person row (reportYear, reportMonth, ssn, caseNum).

  • Four quarterly extracts: active sample, closed sample, aggregate, high-performance bonus. 'QUATERLY' misspelling is consistent across three of the four action names but the high-performance one spells it correctly — mocks keyed on the literal name must handle both.

  • TAC = active cases, TCL = closed cases, TAR = aggregate report, THP = high performance, TRG = trigger. OD prefix = on-demand rerun of the monthly/quarterly trigger — a distinct cadence class beyond the six named suffixes.

  • Header carries an encryptionIndicator field — the transmitted file is expected to be encrypted per ACF TDRS rules; the encryption itself is not performed in these classes.

  • The active/closed/aggregate triple matches the ACF-199 TANF Data Report structure (though the source never names ACF-199 — inferred from the file split, so verify).

D-SNAP (disaster SNAP channel)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1; UserEligibilityDetailsReq (firstName, lastName, dob, sex, ssn) → UserEligibilityDetailsResp

real-time (only active during a declared disaster)

worker-portal/IEWebApp/WebContent/wsdl/SnapUserEligibilityIntegration/SnapUserEligibilityIntegration.wsdl:61 (service SnapUserEligibilityIntegration), :40 (portType SnapUserEligibilityIntegration), :41 (operation UserEligibility); sun-jaxws.xml endpoint SnapUserEligibilityIntegration, url-pattern=/services/SnapUserEligibilityIntegration, impl SnapUserEligibilityIntegrationImpl; client-side artifacts worker-portal/ST/common/src/gov/state/nextgen/business/ejb/services/st/dsnap/SnapUserEligibilityIntegration_Service.java

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1 + large inline XSD (1054 lines); full disaster application payload — activeDisaster, appGrpDisasterExp, authRep block, damageSw/buyFoodSw, disaster employment address, earned income, expenses, documents

real-time during a declared disaster (event-driven, not routine)

worker-portal/IN/ejbModule/META-INF/wsdl/DSNAPAppSubmissionService.wsdl:1048 (service DSNAPAppSubmissionService), :1013 (portType DSNAPAppSubmissionPortType), :1014 op DSNAPAppSubmission, :1018 op DSNAPCaseStatus; sun-jaxws.xml endpoint DSNAPAppSubmissionService, url-pattern=/IES/services/DSNAPAppSubmissionService, impl DSNAPAppSubmissionServiceImpl

inbound (D-SNAP intake app → IES) + a case-status query

SOAP web service

WSDL+XSD; targetNamespace http://dsnap.services.business.ejb.nextgen.state.gov

real-time, per application (disaster-activated)

worker-portal/IN/ejbModule/META-INF/xsd/DSNAPService.xsd:4 (targetNamespace), :5 (DSNAPAppSubmissionReq), :952 (DSNAPAppSubmissionResp); also root DSANPCaseStatusReq (note the transposed-letter typo in the element name). 960 ln.

inbound (Gateway EXPOSES SOAP) + inbound EBT file

JAX-WS SOAP endpoint /IES/services/DSNAPAppSubmissionService + batch file via SQL*Loader into DSNAP_EBT_INBOUND

WSDL; SQL*Loader control

real-time + daily (IN-RCDSNAP-DLY)

worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:153-160 (incl. a commented-out SnapUserEligibilityIntegration endpoint); worker-portal/IEWebApp/WebContent/WEB-INF/web.xml:567; worker-portal/BATCH/IN/sql-loader-control/dsnapcontrolfile.ctl; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCDSNAP-DLY.xml

inbound

SOAP; JAX-WS provider on :9083

WSDL+XSD (dedicated DSNAPService.xsd)

event-driven (disaster declarations)

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/dsnap/DSNAPAppSubmissionService.java:17; ejbModule/META-INF/wsdl/DSNAPAppSubmissionService.wsdl; ejbModule/META-INF/xsd/DSNAPService.xsd

Mock-relevant facts
  • Request top level: dsnapAppNum, appReceivedDate, activeDisaster, dsnapUser, authRepQA (auth-rep block with accommodation fields: disablityReqAccom, typeAccommodationCd, otherTypeDesc, freqOfMod, frqOfExlpaination, isAuthRepProvideInformation, relatedToHoH), homeless, permanentAddress, mailingAddress, hhInformation, expense, documents. Household-member family: hHfirstName/hHlastName/hHMiddleName/hHSuffix, hHssn, hHbirthDate, hHsex, hHrace, hHEthnicity, hohIndicator, hhDrivingLicense + hhDrivingLicenseExpDt + hhDrivingLicenseStateID, isGAResident (Georgia-specific), hhLivWrkInDAArea, hhFoodLossDA, hhFSParticipant, hhCNTYRecvSNAP/hhSTRecvSNAP/hhSTCNTYRecvSNAP, employedDfcsSw. Resource/income groups: groupIncome, groupDisasterIncome, groupEAIncome, groupSELFIncome, groupUEIncome, groupFarmLiveStock, groupLiquidAsset, groupPropertyAsset, groupVehicleAsset, groupTrustAsset, groupResource, groupSoldorGvnResource. Money/codes: earnedIncomeAmt, earnedIncomeEmplName, earnedIncomePayFreq, incomeAMT, incomeType/incomeSubType, expenseAmt/expenseType, moneyInBankSw, buyFoodSw, damageSw, addExpSw, incomeIssueSw. Out-of-state benefit block: outOfStateBenefitstateCode, outOfStateBenefitStatus, outOfStateBenefitType, outOfStateBenefitVerification. identityVerficationType/idVerification (note misspelling). addressValidated flag present.

  • Gateway-as-server. targetNamespace http://dsnap.services.business.ejb.nextgen.state.gov. Largest inbound schema in the surface after SelfServiceIntegration. Contains a literal element named 'filler' — a fixed-width layout leaking into the XSD; canopy’s mock must keep it. Pairs with SnapUserEligibilityIntegration (pre-screen).

  • The @WebServiceClient wsdlLocation on this one is a stale developer workstation path (file:/C:/WPworkspace/…​) rather than a URL — build-time artifact, not a runtime endpoint.

  • Gateway-as-server. targetNamespace http://dsnap.st.services.ejb.business.nextgen.state.gov. Pairs with DSNAPAppSubmissionService (separate finding).

GA DOC (prisoner match)

Direction Transport Format Cadence Evidence

inbound

batch file via webMethods ActiveTransfer MFT; SQL*Loader into IN_RCV_DOC_INFO_STG

fixed-width

daily (DOC_IES_INBOUND_DAILY_FILE)

worker-portal/BATCH/IN/sql-loader-control/InRcDocPrisionerDetailsCtl.ctl (INTO TABLE IN_RCV_DOC_INFO_STG — note the misspelling 'Prision'); MFT event in [secret-bearing path withheld]; batch package …​/in/batch/doc/

inbound

batch file over SFTP via MFT

flat data file

daily

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:1381 (DOC_IES_INBOUND_DAILY_FILE, active=true); [withheld]:773

inbound

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

daily

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 and [withheld] → DOC_IES_INBOUND_DAILY_FILE, token InRecPrisonDetailsDly

inbound

batch file + SQL*Loader stage

pipe-delimited loader; CSV BeanIO record (DocRcvDlyRecord.xml)

daily (plus a DZOT variant)

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-RCPRD-DLY,IN-RCPRD-DZOT}.xml (package …in.batch.doc); loader worker-portal/BATCH/IN/sql-loader-control/InRcDocPrisionerDetailsCtl.ctl (30 lines, fields terminated by '|') → IN_RCV_DOC_INFO_STG

inbound

batch file, pipe-delimited, SQL*Loader into IN_RCV_DOC_INFO_STG; also parsed via a BeanIO csv mapping

delimited, 15 fields: lastName, firstName, ssn, dob, confinementDt, releaseDt, sex, prisonerId, legaStatusDt, facilityName, facilityAddr, facilityCity, facilityStCd, facilityZipCd, facilityPhNum (dates DATE "YYYYMMDD")

daily (IN-RCPRD-DLY; IN-RCPRD-DZOT variant)

worker-portal/BATCH/IN/sql-loader-control/InRcDocPrisionerDetailsCtl.ctl:1-14; worker-portal/BATCH/IN/src/resource-mapping/DocRcvDlyRecord.xml (stream DocRcvDlyFile, format=csv, record docRcvRecord, 15 fields); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/doc/util/DocRcvRecord.java; …​/doc/batchlet/DocRcvBatchlet.java, DocProcessBatchlet.java

Mock-relevant facts
  • One-way unsolicited inbound push-by-drop, active=true. No request leg — IES cannot ask; it only receives. Mock = periodic file drop only.

  • Note the misspelled control filename ('Prisioner') — match it exactly if any tooling references it.

  • Distinct from the SSA monthly prisoner match — this is the state corrections feed.

  • Distinct from the SSA prisoner match. Both feed the same eligibility rule.

LexisNexis — identity / assets

Direction Transport Format Cadence Evidence

bidirectional

batch file via webMethods ActiveTransfer MFT (SHBP, LIHEAP, SilverPop, PCS, MAXSTAR); SOAP for PCS financial summary and STARS

fixed-width for the file interfaces; WSDL for GAIES_PCS_wsProvider_getFinancialSummary, stars_v1.wsdl / StarsV2.wsdl, SolveIntegration.wsdl

SHBP monthly (IES_SHBP_OUTBOUND_MONTHLY_MLY / SHBP_IES_INBOUND_MONTHLY_MLY); LIHEAP daily both ways; SilverPop nightly out + bounced-email in; PCS daily account balance in; MAXSTAR daily certificate out, daily provider in, weekly payment in; STARS monthly (IN-STARSPRCS-MLY, IN-STARSTRIG-MLY, IN-STARSRESP-MLY); SOLVE daily + weekly (IN-SOLVE-DLY, IN-SOLVEREN-WLY, IN-SOLVETN-WLY)

MFT events IES_SHBP_OUTBOUND_MONTHLY_MLY, SHBP_IES_INBOUND_MONTHLY_MLY, IES_LIHEAP_OUTBOUND_DAILY_APPLICATION_FILE, LIHEAP_IES_INBOUND_DAILY_APPLICATION_FILE, IES_SILVERPOP_OUTBOUND_NIGHTLY_FILE, SILVERPOP_IES_INBOUND_BOUNCED_EMAIL_FILE, PCS_IES_INBOUND_DAILY_ACCOUNT_BALANCE_FILE, IES_MAXSTAR_OUTBOUND_DAILY_CERTIFICATE_FILE, MAXSTAR_IES_INBOUND_DAILY_PROVIDER_FILE, MAXSTAR_IES_INBOUND_WEEKLY_PAYMENT_FILE across worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v2, ActiveTransfer_Sprint3_v1, Active_Events_23SEP2015_CR01, Events_Inbound, [withheld]; SOAP worker-portal/IEWebApp/WebContent/wsdl/PCSServiceIntegration/GAIES_PCS_wsProvider_getFinancialSummary_WSD_Port_1.wsdl, worker-portal/IN/ejbModule/META-INF/wsdl/stars_v1.wsdl and StarsV2.wsdl, worker-portal/IEWebApp/WebContent/WEB-INF/wsdl/SolveIntegration.wsdl; batch packages …​/in/batch/{shbp,liheap,spop,pcs,pckcert,pcktpl,maxstar,stars,solve,truven,lexnexresponse,koala}/; SQL*Loader InRcvlihpCtl.ctl, InRcvPcsErrorCtl.ctl, pcs_enr_err_ies_report_Ctl.ctl, pcs_enr_err_pcs_report_Ctl.ctl

bidirectional

batch file (request out, response in) + SQL*Loader staging

BeanIO csv ln-req-snd-dly-mapping.xml (stream LnReqSndStream, class …​in.batch.lnreq.util.LnReqSndChildRecord) and csv IN-RCLNRES-DLY-Mapping.xml (reader …​in.batch.lexnexresponse.chunk.reader.RcLnResReader); staging IN_RCLN_RES_STG

daily (IN-SNLNREQ-DLY, IN-RCLNRES-DLY); monthly account-level request IN-SENDACCULNREQ-MLY

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCLNRES-DLY.xml (reader package lexnexresponse); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNLNREQ-DLY.xml; worker-portal/BATCH/IN/src/resource-mapping/ln-req-snd-dly-mapping.xml, IN-RCLNRES-DLY-Mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRclnresCtl.ctl

bidirectional

batch file + SQL*Loader stage; a partitioned monthly request builder

CSV BeanIO (IN-RCLNRES-DLY-Mapping.xml, ln-req-snd-dly-mapping.xml); pipe-delimited SQL*Loader response layout

daily (request + response), monthly (Accurint bulk request)

jobs …​/batch-jobs/{IN-RCLNRES-DLY,IN-SNLNREQ-DLY,IN-SENDACCULNREQ-MLY}.xml; IN-SENDACCULNREQ-MLY.xml uses gov.state.nextgen.in.batch.partition.InSendAccuLnReqPartition + InSendAccuLnReqReader/Processor/Writer + InSendAccuLnReqBatchlet (property action=populateStg); loader worker-portal/BATCH/IN/sql-loader-control/InRclnresCtl.ctl (395 lines — the LARGEST layout in this surface, fields terminated by '|') → IE_APP_ONLINE.IN_RCLN_RES_STG

inbound

batch file, pipe-delimited, SQL*Loader (skip=1 header) into IE_APP_ONLINE.IN_RCLN_RES_STG; re-load path via a reload component

delimited (fields terminated by '|'), 363 mapped fields: identity block (clientId, name parts, ssn, dob, address block incl. county + in/out-of-state flag, phone) then repeated record groups — property/parcel (recordType/state/county/parcelNum/owner1/owner2/seller1/seller2 …), and further asset groups, indexed C1..Cn

daily (IN-RCLNRES-DLY)

worker-portal/BATCH/IN/src/resource-mapping/IN-RCLNRES-DLY-Mapping.xml (stream RcLnResStream, format=csv, record RcLnResRecord, 363 fields); worker-portal/BATCH/IN/sql-loader-control/InRclnresCtl.ctl:1-14 and 395 lines total; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/lexnexresponse/util/InLnResConstants.java, RcLnResRecord.java; …​/lexnexresponse/chunk/partition/RcLnResPartition.java, chunk/reload/RcLnResStgReload.java

outbound

batch file (BeanIO csv writer, then rename to finalFilePath)

delimited/CSV, 16 fields: clientId, firstName, middleName, lastName, suffixName, ssn, dobDt, addrLine1, addrLine2, addrCity, addrStateCd, addrZip5, addrZip4, addrCounty, inputState, homePhone

daily (IN-SNLNREQ-DLY); a monthly Accurint request job also exists (IN-SENDACCULNREQ-MLY)

worker-portal/BATCH/IN/src/resource-mapping/ln-req-snd-dly-mapping.xml (stream LnReqSndStream, format=csv, record class LnReqSndChildRecord, 16 fields); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNLNREQ-DLY.xml:41,53-55; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/lnreq/util/LnReqSndChildRecord.java

Mock-relevant facts
  • Grouped because each is a smaller single-purpose interface. spop = SilverPop (email/notification vendor, now Acoustic). MAXSTAR = childcare provider certification/payment. Truven and LexisNexis are commercial data vendors (packages exist; I did not determine their transport). Koala is unidentified — needs a dedicated look.

  • Request field order is the prefix of the response identity block — mocks can key request→response on clientId+ssn. The monthly Accurint variant lives in the generic util package (InSendAccuLnReqReaderVO / InSendAccuLnReqProcessedVO), not in lnreq.

  • Widest column count on this surface. Response drives task generation (RcLnResBOImpl.java:506 references AL_TASK_QUEUE task id INT206).

  • Partner identity is only discoverable from the Java package name 'lexnexresponse' — there is no LexisNexis-named config key.

  • InRclnresCtl.ctl at 395 lines is the richest single inbound field layout available for building a realistic mock response.

SHBP (state health benefit plan)

Direction Transport Format Cadence Evidence

bidirectional

batch file

BeanIO fixed-length shbp-mly-mapping.xml (2 records / 14 fields / 135-char, both directions in one file: streams ShbpRcvRecordStream and ShbpSndRecordStream)

monthly (IN-RCSHB-MLY, IN-SNSHB-MLY)

worker-portal/BATCH/IN/src/resource-mapping/shbp-mly-mapping.xml; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCSHB-MLY.xml, IN-SNSHB-MLY.xml

bidirectional

batch file over SFTP via MFT

flat data file

monthly both directions

worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v1:1002 (IES_SHBP_OUTBOUND_MONTHLY_MLY) + :1128 (SHBP_IES_INBOUND_MONTHLY_MLY); repeated Sprint2_v2:1297/1423, Sprint3_v1:3673/3799, [withheld]:1354, [secret-bearing path withheld]':194

bidirectional

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

monthly (request in, data-match response out)

worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v1 → SHBP_IES_INBOUND_MONTHLY_MLY ('Receive SHBP Data Match Request', token InRecSHBPMlyDat), IES_SHBP_OUTBOUND_MONTHLY_MLY ('Send Data Match Response to SHBP', token InSndSHBPMlyDat, [secret-bearing path withheld])

bidirectional

batch file

MIXED — shbp-mly-mapping.xml declares both format="csv" and format="fixedlength" streams

monthly

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-RCSHB-MLY,IN-SNSHB-MLY}.xml (package …in.batch.shbp, mappingFile resource-mapping/shbp-mly-mapping.xml)

bidirectional

batch file

inbound fixed-width 135 bytes (ssn 9, memberName 30, payrollLocCd 5, zipCd 9, covOptionCd 4, relationshipCd 2, dependentSsn 9, dependentName 30, dependentStatusCd 4, sex 1, birthDt/coverageStartDt/coverageCancelDt yyyy-MM-dd 10 each, filler 2); outbound CSV with the same field set

monthly both directions (IN-RCSHB-MLY, IN-SNSHB-MLY)

worker-portal/BATCH/IN/src/resource-mapping/shbp-mly-mapping.xml:4-20 (ShbpRcvRecordStream fixedlength), :22-32 (ShbpSndRecordStream format=csv); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCSHB-MLY.xml, IN-SNSHB-MLY.xml; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/shbp/ (ShbpSndCompositeWriter + ShbpSndBeanWriter = file + DB dual write)

Mock-relevant facts
  • Symmetric monthly out/in pair with the tersest names in the estate (_MONTHLY_MLY). Response is a separate monthly action — a full month of latency between request and response is the normal case, which a mock should treat as the default rather than an error.

  • Outbound uses a composite writer (bean/DB + file) — a mock should expect both a file artifact and a persisted send record.

  • Request/response pairing is by monthly cycle, not by correlation id, in the transfer layer.

GA New Hire registry

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

inbound

batch file + SQL*Loader staging (two tables: employee and employer)

BeanIO fixed-length, 2 records / 61 fields / 314-char; SQL*Loader into IN_W4_EMPLOYEE_STG and IN_W4_EMPLOYER_STG

daily (newhire-rcv-dly)

worker-portal/BATCH/IN/src/resource-mapping/newhire-rcv-dly-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcNewHireEmployeeCtl.ctl; worker-portal/BATCH/IN/sql-loader-control/InRcNewHireEmployerCtl.ctl

inbound

batch file over SFTP/FTP via webMethods ActiveTransfer

flat file

daily, two separate files (employee records, employer records)

worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 → NEWHIRE_IES_INBOUND_DAILY_EMPLOYEE_RECORDS_FILE (InRcvNHEmployeeDlyDat), NEWHIRE_IES_INBOUND_DAILY_EMPLOYER_RECORDS_FILE (InRcvNHEmployerDlyDat)

inbound

batch file + SQL*Loader stage

fixed-width; newhire-rcv-dly-mapping.xml; two staging targets (employee + employer)

daily (probable job IN-RCNHSQL-DLY, a generic FileSQLLoadBatchlet job)

loaders worker-portal/BATCH/IN/sql-loader-control/InRcNewHireEmployeeCtl.ctl → IN_W4_EMPLOYEE_STG and InRcNewHireEmployerCtl.ctl → IN_W4_EMPLOYER_STG; mapping worker-portal/BATCH/IN/src/resource-mapping/newhire-rcv-dly-mapping.xml format="fixedlength"; component scan for the newhire package at worker-portal/BATCH/IN/src/META-INF/batch.xml:29

inbound

batch file loaded by Oracle SQL*Loader (FileSQLLoadBatchlet) into staging, then chunk-processed

fixed-width; employer record ~177+ bytes (FED_ID 9, GA_ACCT_NO 8, NAME 45, NUM_OF_WRKS 5, mail addr 1-3 25 each, city 22, state 2, zip 5+4, delivery point 2, business phone 10); employee record (SSN 9, FEDERAL_ID 9, LAST 20, FIRST 15, MI 1, ADDR1/2 25 each, CITY 22, STATE 2, ZIP 5+4)

daily (IN-RCDER-DLY employer, IN-RCDEE-DLY employee, plus IN-RCDEE-DZOT day-zero load)

worker-portal/BATCH/IN/src/resource-mapping/newhire-rcv-dly-mapping.xml:5-18 (NewHireRcvEmployerInfo), :40-41 (NewHireRcvEmployeeInfo); worker-portal/BATCH/IN/sql-loader-control/InRcNewHireEmployerCtl.ctl:3-20 (IN_W4_EMPLOYER_STG, CREATE_USER_ID constant 'IN-RCDER-DLY'); worker-portal/BATCH/IN/sql-loader-control/InRcNewHireEmployeeCtl.ctl:3-16 (IN_W4_EMPLOYEE_STG); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCDER-DLY.xml + IN-RCDEE-DLY.xml (batchlet gov.state.nextgen.in.batch.common.NewHireEmpBatchlet); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/newhire/

Mock-relevant facts
  • Job-to-loader binding for IN-RCNHSQL-DLY is inferred from naming (NH = new hire) — the job XML uses the generic FileSQLLoadBatchlet with the controlFile passed as a runtime property, so the binding is not provable from the XML alone.

  • The newhire package itself holds only the BeanIO record classes + BOs + a partition class; the job wiring lives in in/batch/common.NewHireEmpBatchlet, which is outside my alphabetical slice.

  • Inbound only in this subsurface — no matching outbound request job found.

NAC (National Accuracy Clearinghouse)

SNAP-relevant (mock-priority set).

Direction Transport Format Cadence Evidence

bidirectional

SOAP via webMethods ESB (match) + REST bulk-upload/matches/match-resolution API + batch file + SQL*Loader staging

WSDL+XSD provider path GAIES_NAC.wsProvider.nacMatch/…​; REST with bearer-token endpoint; BeanIO fixed-length nac-rcv-mly (1/106/2594), nac-rcv-msh (1/114/2670), nac-send-ncf-dly (5/65/1498), nac-snd-mly-cf (5/65/1498), nac-snd-mrf-dly (1/27/604); staging IN_NAC_MRX_RESPONSE_STG, IN_NAC_MSX_RESPONSE_STG, IN_NAC_ERROR_RESPONSE_STG

real-time SOAP; daily (IN-RCNAC-DLY, IN-RCNACERR-DLY, IN-RCNACMCH-DLY, IN-RCNACMRR-DLY, IN-RCNACMSH-DLY, IN-RCNACMSX-DLY, IN-RCNACX-DLY, IN-RCNACSNAP-DLY, IN-SNNACCF-DLY, IN-SNNACMRF-DLY, IN-NACDISPOSE-DLY); monthly (IN-SNNACMCF-MLY, IN-SNNAC-MLY)

worker-portal/IEApp_Properties/Local/Application.properties:189-195 (NAC_SERVICE_URL, NAC_NAME_SPACE, NAC_SERVICE_NAME, NAC_TIME_SWITCH, NAC_LOG_SWITCH, NAC_XML_SWITCH), :674-684 (NAC_BULK_TOKEN_URL, NAC_BULK_TOKEN_USERNAME, NAC_BULK_TOKEN_PASSWORD, NAC_DUPLICATE_URL, NAC_DUPLICATE_API_DAYS_THRESHOLD, NAC_MATCH_RESOLUTION_URL, NAC_FROM_EMAIL, NAC_X_REQUEST_LOCATION, NAC_CON_TIMEOUT, NAC_REQ_TIMEOUT); worker-portal/IEApp_Properties/local_batch/Application.properties:334-343 (adds NAC_BULK_UPLOAD_API_URL, NAC_MATCHES_API_URL); worker-portal/BATCH/IN/src/resource-mapping/nac-*.xml; worker-portal/BATCH/IN/sql-loader-control/InNacMrxResponseRcvCtl.ctl, InNacMsxResponseRcvCtl.ctl, InNacRejectResponseRcv.ctl

bidirectional

batch file over SFTP via MFT; plus a SOAP provider for on-demand match

flat data file; WSDL + XSD for the service

monthly (batch); real-time for the service op

Batch: worker-portal/IN/webMethods/ActiveTransfer_Sprint2_v1:1254 (IES_NAC_OUTBOUND_MONTHLY_FS_CLIENT) + :1886 (NAC_IES_INBOUND_MONTHLY_MATCH_RESPONSE), repeated Sprint2_v2:1549/2181 and Sprint3_v1:3925/4557; '[secret-bearing path withheld]':5429. Service: worker-portal/IEWebApp/WebContent/wsdl/NACServiceIntegration/GAIES_NAC_wsProvider_nacMatch_Port_1.wsdl (op nacMatch, doc/literal, MEP input+output); webMethods GAIES_NAC canonical header direction=Outbound

bidirectional

SOAP (real-time match) + monthly batch file both directions

WSDL+XSD (WsNACServiceSoap) for SOAP; flat file for batch

real-time for nacMatch; monthly for the client-participation file exchange

worker-portal/IN/webMethods/GAIES_NAC_Full_v1.zip → ns/GAIES_NAC/wsConsumer/wsNAC_/connectors/{WsNACServiceSoap_NACDrupalAuth,WsNACServiceSoap_NACSearch}, ns/GAIES_NAC/services/nacMatch, ns/GAIES_NAC/wsProvider/nacMatch; batch at worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1 (IES_NAC_OUTBOUND_MONTHLY_FS_CLIENT filter InSndFSClientsToNacMlyDat, NAC_IES_INBOUND_MONTHLY_MATCH_RESPONSE filter InRcvMatchResponseMlyDat)

bidirectional

SOAP via webMethods, IS package GAIES_NAC, service wsProvider.nacMatch (Axis2 stub)

WSDL+XSD

real-time match query

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/nac/GAIES_NACWsProviderNacMatchStub.java; ejbModule/…​/services/nac/wsnac/; common/src/gov/state/nextgen/in/bo/{InNacBO,INNacResponseBO,INIndvNacMatchesBO}.java; ejbModule/…​/in/INNACSessionEJBBean.java; webMethods/GAIES_NAC{,12_09062015,_Full_v1}.zip

Mock-relevant facts
  • CLEAN REQUEST→RESPONSE PAIR with an explicitly named response action (…​_MATCH_RESPONSE), monthly cadence, plus a real-time nacMatch op for single-person checks. This is the best template in the estate for a canopy batch-match mock: send client roster, receive match results one cycle later, with an on-demand synchronous variant returning the same match semantics.

  • Two-call pattern: NACDrupalAuth must be invoked to obtain a session before NACSearch — a mock must model the auth-then-search sequence. Only one IES-facing flow (nacMatch) wraps both.

  • Newest-generation partner: has both a legacy SOAP/webMethods path and a modern token-auth REST path in the same config file. Credential-shaped keys present — values not extracted.

  • INNacResponseBO was the only file in the surface matching an EDI-ish token search; on inspection that is an incidental numeric code, not X12. No X12/EDI in this surface.

PCS / PeachCare for Kids (CHIP)

Direction Transport Format Cadence Evidence

bidirectional

SOAP via webMethods ESB (financial summary) + batch file

WSDL+XSD provider path GAIES_PCS.wsProvider.getFinancialSummary_WSD/…​; BeanIO fixed-length pcs-snd-mapping.xml (7 record types / 85 fields / 459-char, streams PcsDnSnd/PcsElgSnd/PcsEnrSnd/PcsPchSnd/PcsRefndSnd/PcsTmSnd/PcsWavSnd) and pcs-rcv-mapping.xml (1/15/143)

daily (IN-SPCDN-DLY, IN-SPCEG-DLY, IN-SPCEN-DLY, IN-SPCPC-DLY, IN-SPCRF-DLY, IN-SPCTM-DLY, IN-SPCWV-DLY, IN-RCPCS-DLY) and monthly (IN-SPCEG-MLY, IN-SPCEN-MLY, IN-SPEEL-MLY, IN-SPEEN-MLY)

worker-portal/IEApp_Properties/Local/Application.properties:316-322 (PCS_SERVICE_URL, PCS_NAME_SPACE, PCS_SERVICE_NAME, PCS_TIME_SWITCH, PCS_XML_SWITCH, PCS_LOG_SWITCH); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SPCDN-DLY.xml:7 (comment identifying interface name code PC4K); worker-portal/BATCH/IN/src/resource-mapping/pcs-snd-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvPcsErrorCtl.ctl, pcs_enr_err_ies_report_Ctl.ctl, pcs_enr_err_pcs_report_Ctl.ctl

bidirectional

SOAP (real-time) + daily/monthly batch files

WSDL+XSD (CustomerManagement_getCustomerData); flat files for batch

real-time for financial summary; daily for enrollment/eligibility/denial/termination/waiver/refund/premium-change; monthly for enrollment; daily inbound account balance

SOAP: worker-portal/IN/webMethods/GAIES_PCSv15_12212015.zip → ns/GAIES_PCS/wsConsumer/customerManagementService_/connectors/CustomerManagement_getCustomerData, ns/GAIES_PCS/services/getFinancialSummary, ns/GAIES_PCS/wsProvider/getFinancialSummary_WSD, ns/GAIES_PCS/doc/{doc_getFinancialSummaryInput,doc_getFinancialSummaryOutput,doc_customerNotFoundException}. Batch: worker-portal/IN/webMethods/[secret-bearing path withheld] (IES_PCS_OUTBOUND_DAILY_{ENROLLMENT,ELIGIBILITY,DENIAL,TERMINATION,WAIVER,REFUND,PREMIUM_CHANGE}_FILE at :6618,:7200,:7006,:4100,:6036,:1383,:6812; IES_PCS_OUTBOUND_MONTHLY_ENROLLMENT_FILE at :6424) and worker-portal/IN/webMethods/Events_Inbound (PCS_IES_INBOUND_DAILY_ACCOUNT_BALANCE_FILE filter InRecPCSDlyDat)

bidirectional

batch file + SQL*Loader stage; error-report round trip in both directions

fixed-width (pcs-rcv-mapping.xml, pcs-snd-mapping.xml); comma-delimited error/report loaders

daily + monthly (11 send variants: DN, EG, EN, PC, RF, TM, WV, EEL, EEN)

jobs …​/batch-jobs/{IN-RCPCS-DLY,IN-RCPCS-DZOT,IN-RCPCE-DLY,IN-RCPCI-MLY,IN-RCPCP-MLY,IN-SPCDN-DLY,IN-SPCEG-DLY,IN-SPCEG-MLY,IN-SPCEN-DLY,IN-SPCEN-MLY,IN-SPCPC-DLY,IN-SPCRF-DLY,IN-SPCTM-DLY,IN-SPCWV-DLY,IN-SPEEL-MLY,IN-SPEEN-MLY}.xml — all 11 SPC*/SPE* jobs share resource-mapping/pcs-snd-mapping.xml; loaders worker-portal/BATCH/IN/sql-loader-control/{InRcvPcsErrorCtl.ctl → IE_APP_ONLINE.IN_RCV_PCS_ERROR, pcs_enr_err_ies_report_Ctl.ctl and pcs_enr_err_pcs_report_Ctl.ctl → IE_APP_ONLINE.IN_PARTNER_ERR_REPORT}; javadoc in gov/state/nextgen/in/batch/pcs/: 'Get PCS monthly ELG records for the specified range and page size', 'For IN052 trigger, setting SCHD_RUN_DT day to 22 for PCS and 27 …'

bidirectional

batch file (fixed-width) exchanged via webMethods; inbound error report also via SQL*Loader

fixed-width, record-type-tagged sends: DEN (denial), ENR (enrollment), ELG (eligibility), PCH, REFND, TM, WAV — all 10-byte sequence + 3-byte record type + program cd + case/client ids; inbound PcsDlyRcvRecord 143 bytes (seq 10, recordType 3, programCd 3, customerNum 9, avail amounts, overdue, NSF payment/date/reason/fee, grace, transCreateDt)

daily sends (IN-SPCDN/SPCEG/SPCEN/SPCPC/SPCRF/SPCTM/SPCWV-DLY), monthly variants (IN-SPCEG-MLY, IN-SPCEN-MLY, IN-SPEEL-MLY, IN-SPEEN-MLY); daily receive IN-RCPCS-DLY (+ IN-RCPCS-DZOT day-zero), monthly enrollment reports IN-RCPCI-MLY / IN-RCPCP-MLY

worker-portal/BATCH/IN/src/resource-mapping/pcs-snd-mapping.xml:3 (PcsDnSndRecordStream, recordType default 'DEN'), :16 (PcsEnrSndRecordStream 'ENR'), :37 (PcsElgSndRecordStream), :67 (PcsPchSndRecordStream), :81 (PcsRefndSndRecordStream); worker-portal/BATCH/IN/src/resource-mapping/pcs-rcv-mapping.xml:4-20 (PcsDlyRcvRecordStream); worker-portal/BATCH/IN/sql-loader-control/InRcvPcsErrorCtl.ctl and pcs_enr_err_ies_report_Ctl.ctl:5 (IE_APP_ONLINE.IN_PARTNER_ERR_REPORT); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SPCEN-DLY.xml, IN-RCPCS-DLY.xml; webMethods package worker-portal/IN/webMethods/GAIES_PCS.zip

Mock-relevant facts
  • Acronym NOT decoded. Eleven outbound record-type variants share ONE mapping file — the record-type discriminator lives in the job, not the layout. Two symmetric error reports (IES-side and PCS-side) land in the same IN_PARTNER_ERR_REPORT table.

  • Duplicate-suppression batchlets exist per send type (PcsEnrSndDlyDuplicateCheckBatchlet, PcsPchSndDlyDuplicateCheckBatchlet, PcsSndDuplicateCheckBatchlet) — a mock must tolerate the same logical record being suppressed before write.

  • doc_customerNotFoundException is an explicit fault shape — the mock must be able to return not-found as a typed fault, not an empty success.

  • One mapping file, seven named streams — a mock must select by stream name, not by file.

SteadyIQ (gig income verification)

Direction Transport Format Cadence Evidence

outbound

REST (proxied through the customer-portal SIQ endpoint)

JSON REST

daily (DC-STEADYIQ-DLY)

worker-portal/IEApp_Properties/Local/Application.properties:629 (CP_SIQ_URL); worker-portal/IEApp_Properties/local_batch/Application.properties:311-312 (comment '#SteadyIq properties', CP_SIQ_URL); worker-portal/BATCH/DC/src/META-INF/batch-jobs/DC-STEADYIQ-DLY.xml

outbound

REST/HTTPS, java.net.http.HttpClient, JSON; header X-Api-Key

JSON payload mapped into: steadyiq user, income details, linked sources (company names, linked-source-check flag), linked account details, linked addresses (primary-address flag, state validated against reference data), expense details (recorded/submission/start/end dates), self-employment income

real-time on user consent

Mapping/persistence half IN MY SURFACE: customer-portal/accessEJB/ejbModule/gov/state/nextgen/access/business/services/SteadyIqIncomeDataBean.java:78 (class), :97 (processSteadyIQIncome(appNum, indvSeq, steadyIqUserid, payload)), :227 loadSteadyiqIncomeDtls, :282 loadSteadyiqUserLinkedSrc, :332 loadSteadyiqUserLinkedDtls, :374 loadSteadyiqLinkedAddrDtls, :420 loadSteadyiqExpDtls, :470 loadSteadyiqSelfEmpInc. HTTP half OUTSIDE my surface: access/JavaSource/gov/state/nextgen/access/steadyiq/api/model/SteadyIQTokenService.java:42 (X-Api-Key header), :57-58 (SIQ_API_KEY, SIQ_CREATE_USER_URL), :187. Endpoint: framework/properties/config/production_env.properties:382 (SIQ_CREATE_USER_URL, /auth/SingleUseAuthUrl)

inbound

batch (staged app-user records)

InSteadyiqAppUserCargo staged records; no file layout in my surface

daily

worker-portal/BATCH/DC/src/gov/state/nextgen/dc/batch/bo/DcSteadyiqBO.java:13,16,19 (getSteadyiqBatchListForRunPartitions, getSteadyiqData returning List<InSteadyiqAppUserCargo>). Job: DC/src/META-INF/batch-jobs/DC-STEADYIQ-DLY.xml.

outbound

REST/JSON, bearer-token auth (java.net.http.HttpClient + Jackson)

JSON DTOs: SteadyIqIncomeData, IncomeResponse, Data, SourceData, IncomeSource, IncomeEvent, RemovedIncomeSourceEvent, RemovedData, MonthlyBreakdown, Expense, LinkedAccount, LinkedSource, LinkedAddress, UserIdentifiers, ReferrerIdentifiers, DecisioningInformation, ReportMetadata, Custom

real-time applicant-initiated link; income report pulled per application

DTOs: customer-portal/commonApp/gov/state/nextgen/access/steadyiq/api/model/income/* (18 files). Consumer: customer-portal/commonApp/gov/state/nextgen/access/business/rules/ABSteadyIQBO.java (1811 lines). Staging DAOs: commonApp/gov/state/nextgen/access/data/db2/impl/InSteadyiqUser_DAO.java, InSteadyiqIncomeDtls_DAO.java, InSteadyiqExpDtls_DAO.java, InSteadyiqUserLinkedSrc_DAO.java, InSteadyiqIncStatement_DAO.java, InSteadyiqLinkedAddrDtls_DAO.java (+ Abstract_ bases)

Mock-relevant facts
  • Token acquisition is outside this surface: customer-portal/access/JavaSource/gov/state/nextgen/access/steadyiq/api/model/SteadyIQTokenService.java (java.net.http, JAX-RS GET facade). Parallel to Truv — canopy likely needs both mocks with the same 'linked income source' abstraction.

  • The In* cargo prefix indicates the record type is owned by the IN (interface) module — the actual SteadyIQ API/feed contract lives in the IN subtree. Partitioned batch read (getSteadyiqBatchListForRunPartitions) implies volume.

  • Split module: accessEJB owns the response→DB mapping, the access web module owns the HTTP call. SIQ_API_KEY key name recorded; value not read.

Truv (income/employment verification)

Direction Transport Format Cadence Evidence

outbound

REST over HTTPS to a vendor SaaS host

JSON REST, /v1/ base path; client-id + secret auth

real-time

worker-portal/IEApp_Properties/Local/Application.properties:614-617 (comment '#SR-67273 TRUV_PROPERTIES', TRUV_ENDPOINT_URL, TRUV_SECRET, TRUV_CLIENT_ID), :629 (CP_SIQ_URL with path /access/truv/getSIQVerifications)

outbound

REST/HTTPS, java.net.http.HttpClient, JSON

JSON. POST access-token endpoint (/v1/link-access-tokens/), then GET /v1/links/{link_id}; headers X-Access-Client-Id and X-Access-Secret. Response is deserialised into employment/income/paystub/statement cargos (providers, links, employment records, employer address+state, dates-from-statements flag, file URLs for statements).

real-time on user consent, plus an asynchronous follow-up pass

customer-portal/accessEJB/ejbModule/gov/state/nextgen/access/business/services/TruvIncomeDataBean.java:80 (class), :99 (processTruvIncome(public_token, truvuserid, linkId)), :110-114 (TRUV_X_ACCESS_CLIENT_ID, TRUV_GET_ACCESS_TOKEN_URL, TRUV_GET_LINKS_URL, TRUV_X_ACCESS_SECRET), :125-128 and :156-159 (HttpClient with Redirect.NEVER, X-Access-* headers), :146-151 (URL-encoded link_id — annotated SSRF fix), :453 (statement fileUrl). Async twin: accessEJB/…​/TruvIncomeDataAsyncBean.java:81, :88 (processAsync), :98-102, :109-134. Callers: afbEJB/ejbModule/gov/state/nextgen/access/business/services/JobIncomeEJBBean.java:7114, :12622 (reflective invoke of processTruvIncome); also access/JavaSource/gov/state/nextgen/access/truv/api/IncomeVerificationService.java:80. Endpoints: framework/properties/config/production_env.properties:365-367

outbound

REST over java.net.http.HttpClient (JDK 11+ client), GET with a default header set; plus an async data-refresh EJB

JSON

real-time on demand + asynchronous refresh cycle

worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/truv/IncomeOperation.java:4-5 (java.net.http.HttpClient/HttpResponse), :22 (static HttpClient), :31 (TruvHttpInterface.makeGETRequest(getDefaultHeader(), links + parm + productType)); sibling files DataRefreshOperation.java, TruvDataRefreshAsyncBean.java, TruvDataRefreshBO.java, TruvInterface.java; ejbModule/…​/in/INTUSTruvSummaryEJBBean.java

outbound

REST/JSON (HTTP client + Jackson); results landed into IN_TRUV_* / APP_IN_EMPL_TRUV staging tables

JSON DTOs: BridgeToken, CreateUserResponse, ListAllUsersResponse, ListAllEmploymentsResponse, EmploymentResponse, IdentityResponse, LinkIdDetails, PreviewIncome, Result, Address/Home_address, Company; income/: IncomeVerificationResponse, Employment, Profile, Statement, W2, Earning(s_ytd), Deduction(s_ytd), Annual_income_summary, Bank_account

real-time applicant-initiated payroll link (bridge token → user → employments → income); commonApp also re-reads persisted data per application/change report

DTOs: customer-portal/commonApp/gov/state/nextgen/access/truv/api/model/* (26 files). Persistence/consumer: customer-portal/commonApp/gov/state/nextgen/access/business/rules/ABTruvBO.java (1772 lines; loaders at :80, :125, :160, :222, :262, :374, :421, :468, :516, :551, :586, :621, :707, :875) and RMCPaystubUploadBO.java:534, :676, :720, :777. Entities: commonApp/gov/state/nextgen/access/business/entities/APP_IN_EMPL_TRUV_.java, APP_IN_TRUV_Cargo.java

Mock-relevant facts
  • The HTTP invoker itself is NOT in this surface (it lives in the sibling access/ project); commonApp owns the wire DTOs + the landing-zone model. For canopy mocks, the DTOs here are the authoritative response shapes.

  • Newest-generation interface in the module (modern JDK HTTP client vs Axis2 everywhere else). URL is composed as base+param+productType — the concatenation shape is the mock seam.

  • Credential property keys TRUV_X_ACCESS_SECRET / TRUV_X_ACCESS_CLIENT_ID exist in the env properties file — key names only recorded, values deliberately not read.

  • Only worker-portal partner whose endpoint host is a public commercial SaaS domain rather than a state/ESB host.

CMO (care management organizations)

Direction Transport Format Cadence Evidence

bidirectional

batch file + SQL*Loader staging

BeanIO fixed-length cmo-snd-mapping.xml (2/21/351, stream CmoSndRecords); staging stg_rp_otca_addr_upd_inbound_dtl

monthly send (IN-SNCMO-MLY), daily send/receive (IN-SNDCMO-DLY, IN-RCVCMO-DLY)

worker-portal/BATCH/IN/src/resource-mapping/cmo-snd-mapping.xml; worker-portal/BATCH/IN/sql-loader-control/InRcvCmoDly.ctl; worker-portal/IEApp_Properties/common/fast4jCustomDAOsList.properties:1538 (StgRpOtcaAddrUpdInboundDtl)

bidirectional

batch file + SQL*Loader stage

fixed-width outbound (cmo-snd-mapping.xml); loader-defined inbound

monthly outbound, daily inbound

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-SNCMO-MLY,IN-RCVCMO-DLY,IN-SNDCMO-DLY}.xml (IN-SNCMO-MLY package …in.batch.truven, mappingFile resource-mapping/cmo-snd-mapping.xml); loader worker-portal/BATCH/IN/sql-loader-control/InRcvCmoDly.ctl → IE_APP_ONLINE.stg_rp_otca_addr_upd_inbound_dtl

bidirectional

batch file; inbound loaded via SQL*Loader

outbound fixed-width 351 bytes (caseNum 9, clientId 9, ClientRelationshipCd 4, last 30, first 30, MI 1, ssn 9, dob 10, race 2, ethnicity 2, gender 1, addrType rid regex (M|R), addrLine1/2 100 each, city 22, state 2, zip 9, certEndDt 10) + 'T' trailer (fileGenerationDate); inbound loaded to an address-update staging table

monthly send (IN-SNCMO-MLY); daily send/receive (IN-SNDCMO-DLY, IN-RCVCMO-DLY)

worker-portal/BATCH/IN/src/resource-mapping/cmo-snd-mapping.xml:5-28 (CmoSndRecords), :29-33 (CmoSndTrailerRecord literal 'T'); worker-portal/BATCH/IN/sql-loader-control/InRcvCmoDly.ctl:4 (IE_APP_ONLINE.stg_rp_otca_addr_upd_inbound_dtl); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNCMO-MLY.xml (truven CmoSndPreProcessBatchlet + cmo-snd-mapping) and IN-SNDCMO-DLY.xml (note: daily CMO send reuses the gammis-snd-dly mapping/readers); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/truven/

Mock-relevant facts
  • Naming is split: the package is 'truven' but the jobs/records say CMO. The daily variant is wired through the gammis package (outside my slice) — flagged so a later pass reconciles them.

DCSS — child support services

Direction Transport Format Cadence Evidence

bidirectional (IES → CSE send TC100-500, CSE → IES receive TC100-600)

batch file → JAXB record

fixed-position layout, transaction-code-typed records sharing a header; ns http://www.example.org/InSEARCHSNCP{100..500}SendSchema, …​/SEARCHSNCPRcvSchema, …​/SEARCHSNCPHeader

batch (tranDateTimestamp / tranTimestamp + csFldChgInd change-indicator on every header)

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/ — SEARCHSNCPSendDocument.java, SEARCHSNCPHeader.java, SEARCHSNCP{100,200,201,202,300,400,500}Info.java, SearchsNcpRcvDocument.java:43, SearchsRcvHeaderInfo.java, SearchsNcpRcvRecord.java, SearchsNcpRcv{100,200,300,400,500,600}Info.java

bidirectional (locate send/receive; payment and OOS-benefit receive-only)

batch file → JAXB record

fixed-position layout; ns http://www.example.org/SEARCHSLOCATE{Snd,Rcv}Schema, …​/SEARCHSCsPaymntRcv, …​/SEARCHSOOSBENEFITSRCVSchema

batch

worker-portal/interfaceSchema/src/main/java/gov/state/nextgen/jaxb/cargo/generated/{SearchsLocateSndInfo,SearchsLocateRcvInfo,SearchsLocateSndInfoDocument,SearchsLocateRcvInfoDocument,SEARCHSCsPaymntRcvInfo,SEARCHSCsPaymntRcvInfoDocument,SEARCHSOOSBENEFITSRCVInfo,SEARCHSOOSBENEFITSRCVInfoDocument}.java; SEARCHSOOSBENEFITSRCVInfo.java:52

bidirectional

embedded in the correspondence/notice XML schema and form data; no dedicated DCSS WSDL or batch job found

XSD — complexType dCSSChildSupportIncomeDetails (up to 500 occurrences) inside IESFormXMLSchema; a DCSS cooperation string element in the TANF 194 notice

not discernible

worker-portal/CO/xsd/IESFormXMLSchema.xsd:521 (element DCSSChildSupportIncomeDetails maxOccurs=500), :1166 (complexType dCSSChildSupportIncomeDetails), :6055 (element DCSS); worker-portal/CO/common/src/gov/state/nextgen/co/util/Tanf194Util.java:27-28 (setDCSS from CO_DCSS_COOPERATION); JAXB worker-portal/CO/common/src/gov/state/nextgen/co/util/xsd/schema/notices/Oneninefourrepeatable.java:88

Mock-relevant facts
  • Send header SEARCHSNCPHeader (8): caseNumber, apNum, personNum, patricId, capsId, csTranCd, tranDateTimestamp, csFldChgInd. Receive header SearchsRcvHeaderInfo (9): caseNum, chimesNcpId, indvId, searchsId, filler1, csTranCd, tranTimestamp, csFldChgInd, intfcDecodeBlk. Send record types: TC100 = IU/benefit status (appReceiveDate, determinationDate, iuStatusCode/Date/StartDate, benefitMonth, grantAmount, netGrantAmount, csDisregardAmount, iuChildCount, csInBenefitInd, assignCode, county/caseload worker block, revertToOpenInd, dnyClosureReasonCode, programCode, programSubTypeCode, trackingCode, benefitInd). TC200 = absent-parent demographics (apLastName/FirstName/MiddleInt, alias, apSSN, sexCode, raceCode, maritalStatusInd, birthDate, placeOfBirthCity/State, lastKnownAddressDate, address block, phoneNum, detCode/detDate, coorCode, cooperationStatus, goodCausebeginDate, ncpDeathDate, placeOfDeathCity, ncpClosureReason, locationSuppressionIndicator). TC201 = NCP employment/military (occupation, employerName + address, employeeStartDate/EndDate, branchOfService, serviceDate, dischargeDate). TC202 = relatives/assets/incarceration/support-order (fathers*/mothers* names, mothersMaidName, assets, institutionName, incarcerationStartDate/ReleaseDate, arrestDate/Location, suptDpcketNum, suptCourtName, suptOrderDate, suptPayeeName/Loc, suptPayAmount, suptPaidAmount, suptFreqCode, lastSuptPayDate, mmSpsSupt). TC300 = household member (name+alias, sexCode, ssn, birthDate, tribalAffiliation, indianEnrollment, programCode/SubTypeCode, ptcpCode, programStart/EndDate, relationshipCode). TC400 = residential + mailing address pair with start/end dates, countyNum. TC500 = child/paternity/TPL (childBirthCity, birthStateCode, paternityEstablishedInd, insInd, deprCause1Code, deprStartDate, tplCode, policyNum, groupCertificationNum, subscriber name + ssn, tplSourceCode, verificationDate, coverageStart/EndDate, specialCircumstance). Receive record types: TC100 cooperation-status reconciliation (tc100CsedCoopStatusCd/StartDt/EndDt vs tc100ChimesCoopStatusCd/StartDt, tc100ExcsInAmt/Dt, tc100NcpSearchsId), TC200 NCP identity+address+tc200CohabtFlag, TC300 employer, TC400 medical coverage/TPL + tc400NcpClosureReason, TC500 order/payment (tc500CourtOrderAmt, tc500PayFreq, tc500PaySrc, tc500LastPayRcvDt/Amt, tc500ArrearsPayAmt/Dt), TC600 header-only (delete/ack). chimes* prefixes reveal the vendor product name (CHIMES) on the IES side of the mapping.

  • Locate send (~40): caseNum, indvId, name + alias name, dobDt, address block (addrLine1/2, addrCity, addrStateCd, addrZip5, addrZip4, addrCountyCd, addrPhone), receiveBenefitInd, liveWithCaretakerInd, ssn, aliasSsn, searchsId, and THREE repeated program slots (partStatusCdN, programCdN, programSubCdN, paymentAmtN, benefitStartDtN, benefitEndDtN for N=1..3). Locate receive (6): ncpSsn, searchsId, lastName, firstName, midName, dobDt. Child-support payment receive (21): acctType, catCd, catSubCd, custodial-parent name parts + cpSsn + cpPersNo, searchsCaseNo, payClctDt, jrnlPostAmt, acctFlagCd, absent-parent name parts + apSsn + apSearchsId, caseNo, accountNo. Out-of-state benefits receive (13): indvId, caseNum, ssn, name parts, dobDt, genderCd, benefitBeginDt, benefitEndDt, programCd, stateCd.

  • Only 76 DCSS hits and 8,540 generic child support hits. IMPORTANT: on THIS surface DCSS appears as notice/form content, not as a live interface — the child-support data appears to arrive via case data entry rather than a system-to-system feed. Another agent should confirm against the DB/interface tables before concluding there is no DCSS interface; my census found no DCSS WSDL, no DCSS batch job, no DCSS MFT event.

CPP (TANF work-participation vendor portal)

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1; clientSearchRequest, vendorSearchRequest, tanfWorkHoursDetails

real-time

worker-portal/IEWebApp/WebContent/wsdl/CPPServiceIntegration/CPPServiceIntegration.wsdl:126 (service CPPServiceIntegrationService), :57 (portType CPPServiceIntegration), :58 searchForAClient, :64 submitTanfWorkHours, :70 searchForAVendor, :76 getTanfWorkHours; sun-jaxws.xml endpoint CPPServiceIntegration, url-pattern=/CPPServiceIntegration, impl CPPServiceIntegrationImpl; impl-side SEI worker-portal/IEWebApp/src/gov/state/nextgen/business/ejb/services/st/cpp/CPPServiceIntegration.java

bidirectional

LDAP/LDAPS via JNDI (framework FwLdapManager)

LDAP entries. Interface ILdap operations: authenticateUser(loginId, password, profile), createUser(People), searchUser, searchUserCPP, updateSecurityQuestions(People, profile), updateUserDetails, searchUserDetails, resetPassword(user_id, current, new, profile), searchOrganizationUnit, searchOrganizationUnitDetails, updateAgencyDetails(OrganizationUnit), createOrganizationUnit, getIntruderAttempts, isValidPasswd, isAccLockedIntruderAttempts, purgeAccount, getUserAccounts, getUserAccountsPagiated, validateNewPassword. profile selects the directory branch (e.g. USER_ACCOUNT_TYPE).

real-time, per authentication / registration / profile change

CONSUMER IN MY SURFACE: customer-portal/securityEJB/ejbModule/gov/state/nextgen/access/business/services/SecurityHelperEJBBean.java:138-139 (imports FwLdapManager/ILdap), :3157, :6952, :7047, :7227, :7588 (updateAccDetails), :9723-9726 / :9856-9859 / :10651-10662 (authenticateUser), :9980, :10062; LDAP_FAILOVER_COUNT at :441; session key FwConstants.LDAP_WID at :604, :728, :1119. Interface: framework/gov/state/nextgen/framework/persistence/ldap/ILdap.java:21-153. Impl: framework/gov/state/nextgen/framework/persistence/ldap/FwLdapManager.java:77

Mock-relevant facts
  • Gateway-as-server. targetNamespace http://cpp.st.services.ejb.business.nextgen.state.gov. Vendor identity is not named in the WSDL; inferred as the TANF work-program provider portal from the operation set (client search + vendor search + submit/get TANF work hours). A same-named WSDL also exists in the customer-portal repo.

  • Directory host/bind config is NOT in framework/properties/config/*_env.properties (grep for ldap key names returns nothing there) — it lives in JNDI/deployment descriptors I did not locate. securityEJB is the only one of my four modules that touches it.

MCHB (maternal & child health)

Direction Transport Format Cadence Evidence

inbound

batch file

CSV; mchb-rcv-dly-mapping.xml

daily

job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCMCHB-DLY.xml (package …in.batch.mchb); javadoc in gov/state/nextgen/in/batch/mchb/ sets p4hbMchbSw (Planning for Healthy Babies switch)

inbound

batch file

comma-delimited CSV, 19 fields (medicaidId, ssn, dob, assignment reason cd, special condition cd, name, address, county, aid category, elig begin/end, assignment end, gender)

daily (IN-RCMCHB-DLY)

worker-portal/BATCH/IN/src/resource-mapping/mchb-rcv-dly-mapping.xml:4-33 (stream InMchbRcvRecordStream, format=csv, delimiter ','); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCMCHB-DLY.xml:46-47; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/mchb/bo/impl/InMchbRcvBOImpl.java:59-76 (matches on SSN then Medicaid ID via GAMMIS id cargo)

Mock-relevant facts
  • Partner identity is genuinely undetermined: repo-wide grep for 'mchb' returns only this interface’s own classes plus its DAO/cargo (worker-portal/DA, worker-portal/Common). Treat as a Medicaid member/plan-assignment feed for mocking purposes.

NCOA (postal address change)

Direction Transport Format Cadence Evidence

bidirectional

batch file with encrypt/decrypt steps

not declared in the config surface (no BeanIO mapping); dedicated encrypt and decrypt jobs

daily (IN-NCOAENCRYPT-DLY, IN-NCOADECRYPT-DLY)

worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-NCOAENCRYPT-DLY.xml, IN-NCOADECRYPT-DLY.xml (IN-NCOADECRYPT-DLY declares controlFilePath job parameter)

bidirectional

batch file with explicit encrypt (outbound) / decrypt (inbound) steps

not determined (no BeanIO mapping; encrypt/decrypt batchlets only)

daily

jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-NCOAENCRYPT-DLY,IN-NCOADECRYPT-DLY}.xml (packages …in.batch.common and …in.batch.util respectively)

Mock-relevant facts
  • The only partner pair in the surface where file-level encryption is an explicit, separately-scheduled job — the mock harness needs a pass-through 'crypto' stage.

  • Encryption/decryption are separate scheduled jobs rather than in-line — the file is encrypted at rest between the two.

VCL

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1; nested programs/coverages/infoReq with dueDate, proofAccepted, specailNotes [sic], langCd

real-time

worker-portal/IEWebApp/WebContent/WEB-INF/wsdl/PendingVerDocsService.wsdl:67 (service PendingVerDocsService), :49 (portType PendingVerificationServicePortType), :50 (operation fetchPendingVCL); sun-jaxws.xml endpoint PendingVerDocsService, url-pattern=/PendingVerDocsService; SEI worker-portal/IEWebApp/src/gov/state/nextgen/ejb/business/services/cp/vcl/PendingVerificationServicePortType.java

inbound (pull from worker-portal)

SOAP, direct service PendingVerDocsService at /cpsecure/PendingVerDocsService?wsdl

WSDL + XSD. portType PendingVerificationServicePortType, operation fetchPendingVCL. PendingVerificationRequest → PendingVerificationResponse{Program[], Coverage[]}

real-time, on the applicant’s verification-checklist screen

WSDL: customer-portal/bridgesClient/META-INF/wsdl/PendingVerDocsService.wsdl:1 (definitions, targetNamespace vcl.cp.services.business.ejb.nextgen.state.gov), :50-58 (portType/operation), :68-70 (service + soap:address). Call: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2224 (callFetchPendingVCL). JAXB: bridgesClient/gov/state/nextgen/ejb/business/services/cp/vcl/ (PendingVerDocsService.java, PendingVerificationServicePortType.java, PendingVerificationRequest.java, PendingVerificationResponse.java, Coverage.java, Program.java). Endpoint: framework/properties/config/production_env.properties:288 (PENDING_VCL); consumer commonApp/gov/state/nextgen/access/business/rules/BenefitSummaryBO.java

Mock-relevant facts
  • Gateway-as-server. targetNamespace 'vcl.cp.services.business.ejb.nextgen.state.gov'. Element 'specailNotes' is misspelled in the contract — reproduce verbatim in mocks. A same-named WSDL also exists in the customer-portal repo (out of my surface).

ANTS (notice tracking feed)

Direction Transport Format Cadence Evidence

outbound

batch file

delimited BeanIO (ANTSStream)

daily (mapping file named ants-dly-mapping.xml)

worker-portal/BATCH/CO/src/resource-mapping/ants-dly-mapping.xml:3 (<stream name="ANTSStream" format="delimited">), :8 (ANTSRecord).

Mock-relevant facts
  • Low-confidence partner identity: I found the layout and cadence in the filename but no attributing comment or BO class naming the counterparty within CO. Flagged for follow-up rather than guessed.

Data Broker (income aggregator)

Direction Transport Format Cadence Evidence

outbound (queue) → HTTP POST

JMS queue INDataBrokerQ bridged to HTTP by FwHttpDispatcher/FwDataBrokerTrigger

FwXMLMessage XML posted as HTTP body with Content-Type application/x-www-form-urlencoded, method POST

real-time / on-demand

Queue mapping: worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:24 (INSndOnDDataBrokerMsgVO="INDataBrokerQ"). Dispatcher: worker-portal/IEWebApp/WebContent/XML/config/services.xml:74 (INDataBrokerQ=FwHttpDispatcher), :84-91 (trigger block: name=INDataBrokerQ, class FwDataBrokerTrigger, hardcoded IP domain, port="80", path="TIERS_async.asp", protocol="http"). Transport impl: worker-portal/FW/ejbModule/gov/state/nextgen/framework/business/bo/FwDataBrokerTrigger.java:27-28 (@Deprecated), :71-93 (HttpURLConnection POST, x-www-form-urlencoded, no TLS, no auth header). Producer: worker-portal/Common/src/gov/state/nextgen/common/util/InSndOnDDataBroker.java:56,:100-102.

Mock-relevant facts
  • services.xml line 88 contains a hardcoded public-IP endpoint — value deliberately not reproduced; path recorded. Cleartext HTTP with no authentication and a .asp target confirms this is legacy TIERS heritage. Class is @Deprecated. Trigger domain/port/path are also overridable per-queue from a 'trigger' properties file (FwConstants.TRIGGER_PROPERTY_FILE at worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/FwConstants.java:2752, keys <queueId>_domain/_port/_path/_protocol per FwHttpDispatcher.java:74-103) — that properties file is NOT in the tree.

HMS — Pathways

Direction Transport Format Cadence Evidence

bidirectional (inferred from keyring pair)

batch file with PGP encryption

not declared in config (no BeanIO mapping named hms in this surface)

not discernible from config

worker-portal/IEApp_Properties/local_batch/Application.properties:265-267 (comment '#PATHWAYS HMS Interface Public Key', HMS_PUBLIC_KEYRING, HMS_USER_ID), :281-283 (comment '#PATHWAYS HMS Interface Private Key', HMS_PRIVATE_KEYRING, HMS_PASS_PHRASE)

Mock-relevant facts
  • Only PGP-keyed partner with no corresponding batch job or mapping in worker-portal — the file exchange itself may live in another repo or be operated outside the app.

ODDC

Direction Transport Format Cadence Evidence

inbound

SOAP over HTTP (JAX-WS endpoint published by IEWebApp)

WSDL 1.1; Person / Program blocks, CaseNumberorApplicationNumber choice, ID/IDType/IDValue

real-time

worker-portal/IEWebApp/WebContent/WEB-INF/wsdl/ODDCValidationWebservice.wsdl:104 (service ODDCValidationWebservice), :86 (portType ODDCValidationWebservicePortType), :87 (operation oDDCValidation); sun-jaxws.xml endpoint ODDCValidationWebService, url-pattern=/oddc/ODDCValidationWebService

Mock-relevant facts
  • Gateway-as-server. targetNamespace 'oddc.services.business.ejb.nextgen.state.gov'. Response carries GenerateLogonResponse + GenerateTaskRequest shapes, i.e. the validation both authorises the drop-off session and seeds a worker task. A companion outbound key CP_APPID_ODDC_SERVICE_URL exists in IEApp_Properties/Local/Application.properties, so the ODDC channel is bidirectional at the program level.

OPI (program integrity)

Direction Transport Format Cadence Evidence

bidirectional (INOPIDisq request, INOPIReferralQ send)

JMS queues (framework MQ)

FwXMLMessage XML envelope

real-time / on-demand

worker-portal/IEWebApp/WebContent/XML/config/persistence.xml:23 (INOnOPIDisqulaificationMsgVO="INOPIDisq", INSndOnReferralMsgVO="INOPIReferralQ"); operations worker-portal/IEWebApp/WebContent/XML/config/services.xml:14-15,:36-37 (getOpiDisq→executeINOnOPIDisqualification, getOpiClientSearch→executeINDROPIClientSearchBO). VO present: worker-portal/DA/src/gov/state/nextgen/common/cargo/custom/INSndOnReferralMsgVO.java:22 (extends AbstractMessageVO).

Mock-relevant facts
  • INOnOPIDisqulaificationMsgVO absent (note the misspelling in the config key, preserved above verbatim). Expansion of 'OPI' is not stated anywhere in the tree — do not guess.

Appendix A — internal / architecture surfaces

Not external partners, but load-bearing for mock design (broker semantics, channel plumbing, rules engines, vendor-lineage remnants). Families here are SUMMARIZED (one aggregate bullet each); member finding ids are listed in the census manifest under summarized:

  • Mobile app (Gateway mobile) — 1 findings. Gateway-as-server. targetNamespace 'fsprcase.services.business.ejb.nextgen.state.gov' (bare dotted string, not a URI).

  • Customer/self-service portal (internal channel) — 14 findings. Namespaces = operation families: appreg (application registration + status + inquiry), autoappreg, caseassociation, checkheadofhousehold, cmbdetail / cmbsummary (Case & Member Benefits), docmanagement, notification, changealert (RMC = report-my-changes), rmbrmc (Report My Benefits / Report My Changes — SS_FullCaseDetails), pdf. Key shapes: (a) SS_ApplicationDetails case — applicationTrackingNumber, caseNumber, cpAppNum, noTouchIndicator, applicationType, program request switches (snapRqstIndicator, childCareRqstIndicator, fpwRqstIndicator, fmaRqstIndicator, energyAsstRqstIndicator, coolingAsstRqstIndicator, crisisAsstRqstIndicator, fuelAsstRqstIndicator, tanfRqstIndicator, indvWicRqstInd), snapPeriodicReportTaskIndicator, languageCode, fipsCode/countyCode, homelessSwitch, physical+mailing address blocks with zip4, livingArrangementCode/StartDate, expeditedSNAP, authorizedRepresentative, voterRegistrationIndicator, consentToExchangeInformationIndicator, eSignedByApplicant* block, assignedAgencyFIPSCode. (b) SS_CMB_CaseDetailResponse — program{programCode, adaptClientID, programStatus, dateApproved, payment{paymentDate, benefitAmount, benefitMonth, recoupAmount, payAmount}, renewalDate, verificationDSC, negativeStatusReasonCode, typeOfAssistance, periodicRptCd/Date/Submitted, terminationDate}, person{memberGammisId, mcEnrollmentDate, ssn, birthDate, headOfHouseholdIndicator, langCd, pathwaysContractIndicator, ffmIndicator, schedApptDate}, qualifyingActivityHrsInfo{mnthlyHrsReqrd, reqHrsToReportPrevMnth, cntOfCnsMnthReported, dueDtToSubPrevMnthHrs, statusOfPrevMnthSubmisn, actHrsSubmitdFrPrevMnth, gcHrsSubmitdFrPrevMnth, goodCauseStatus, gcHrsRemainFrCertPeriod, nxtQaSubmissionDeadLn, suspensionCounter}, program buckets childCare/wic/medicalAssistance/peachCare/tanf/foodStamp, restrictAccsCustPortalSw, onDemandInterviewInd. (c) SS_RMCAlert caseChangeIndicators is a ~45-flag change-reported bitmap (addrChgInd, assetTransferChgInd, authRepChangeInd, buryAsetAddInd/ChgInd, childSupportPaymentChgInd, dablStatInd, dpndCareChgInd, drugFelnChgInd, dthStatInd, dvrcStatInd, earnedIncomeChgInd, emplChgInd, headOfHouseholdChgInd, healthInsuranceChgInd, houseBillChgInd, hshlChgInd, ikndIncomeChgInd, irweChgInd, lifeInsAsetAddInd/ChgInd, liquidAsset{BankAcc,Cash,Other,Add,Chg}Ind, mappStatInd, medBillsChgInd, medCvrgChgInd, medicareABDChgInd, marriageStatInd, otherIncomeChgInd, otherAssetTransferInd, otherAssetChgInd, paroleViolationStatInd, pastCvrgStatInd, personMovedInStatInd, …) plus snapDueDate/snapRenewalStatInd/snapRequestStatInd/tanfDueDate/tanf* and ecfStatusCode. (d) SS_CaseAssociation adds a geospatial vendor search (latitude, longitude, radius, vendorType) and appointmentDetails. (e) SS_DocManagement moves base64 blobs inline (documentByteArray) — a mock should cap size. Product identifiers to model: adaptClientID (legacy GA ADAPT eligibility system), memberGammisId (Georgia Medicaid MMIS), ffmIndicator, pathwaysContractIndicator (GA Pathways to Coverage).

  • Internal (bridges/Corticon/DMS/portal plumbing) — 20 findings. Note this namespace family is INCONSISTENT — TabList uses …​InDMSRetrieveImageSndRcv while UserAuthentication/RetrieveImage use …​InDMSRetrieveImageSndRcvSchema (trailing 'Schema'); a mock must not normalize them. Auth: UserAuthenticationRequest{userId, password, features} → UserAuthenticationResponse{userSecurity(roles), userId, authenticationToken}; thereafter AuthenticationInformationType{userId, token} rides on every request. Search: SearchRequest{authentication, criteria} where SearchCriteriaType (10) = imageIdentifier, receivedDateStart/End, entryDateStart/End, inbox, tab, _case, person, maxResults → SearchResponse{documents, searchCriteria}. DocumentType (16): documentId, deletionComment, deletionDate, entryDate, receivedDate, mimeType, size, purgeDate, readOnlyIndicator, restrictedIndicator, retainIndefinitelyIndicator, tabs, cases, persons, inboxes, restrictedByTab, documentComment. CaseType{caseIdSeq, caseIdentifier, system}; PersonType{personIdentifier, prsnIdSeq, system}; SystemType{systemType, systemDescription, serviceLocation}. RetrieveImageRequest{authentication, imageIdentifier} → RetrieveImageResponse{mimeType, fileExtension}. TabType{tabType, tabLabel, tabDescription, subTabs, noLongerValidIndicator, restrictedBySecurity}. RoleType{roleName, roleDescription, features}; FeatureType{featureLabel, featureDescription, clearance, tabsWithClearance} — the document-level authorization model worth mirroring (clearance + restrictedByTab + restrictedIndicator).

  • OPA / GoRules (rules engines) — 9 findings. ENTIRE JmsRecieveWebApp module is shipped as compiled .class files only — 12 classes under JmsRecieveWebApp/src/, NO .java, no web.xml, no ejb-jar.xml, no build file. Facts above were read from constant pools via strings; no line numbers available. Every class carries an 'Unresolved compilation problems' Error body, i.e. these were compiled against a missing classpath — treat as a best-effort artifact, not a clean build. SECURITY: worker-portal/JmsRecieveWebApp/src/com/deloitte/jms/properties/JmsDefaultProperties.class contains HARDCODED credentials (JDBC username/password, OPA web-service username/password) and internal hostnames/IPs as ConstantValue entries — values deliberately NOT reproduced here; path recorded for remediation. The runtime-config file it falls back from, JmsApplication.properties (named at OPAV12RecieveConstants PROPERTY_KEYNAME), is NOT present in the tree.

  • GTA ESB / webMethods broker (architecture) — 6 findings. STALENESS EVIDENCE — I checked every VO class named in this table against the tree: MISSING (config points at nonexistent classes) = INDRClientDetailsMsgVO, INDRTwcClientInfoMsgVO, INDREdgHistoryMsgVO, INDRMedicaidInfoMsgVO, INDRTwcEdgInfoMsgVO, INDRBendexMsgVO, INOnOPIDisqulaificationMsgVO, INSndSavrTiersTransMsgVO, INDRStopKR1MsgVO, INDRSendMessageMsgVO, INDRListenerStopMsgVO, CoMsgVO, MciLoader, EdbcVO, INSASSendMsgVO, INSndSolqToSSAMsgVO, SolqResponseVO. PRESENT = INSndOnReferralMsgVO, INSndOnDDataBrokerMsgVO, INOnTdhBvsMsgVO, MciVO, FwEntitiesBatchMessageVO, BiCardholderInfoMessageVO, FwMessagePagerVO, INSASTriggerMsgVO, INSndSolqTriggerMsgVO, SeRoleToFunctionsVO, SeRoleToReportsVO (all under worker-portal/DA/src/gov/state/nextgen/common/cargo/custom/ except the FW ones). Roughly half this catalog is dead configuration — do not build canopy mocks for the missing half without independent confirmation.

  • Texas TIERS lineage remnants (SAVERR/TIERS/TDH/SWSS/MCI/SAS) — 3 findings. NONE of the seven INRCV*/InRcv* dispatcher classes exist in this tree, and none of these queue ids appear in persistence.xml — config-only. CPSHome.xsd’s BRIDGES-CASE-NUM is direct evidence these are Michigan Bridges / SWSS heritage schemas, not Georgia interfaces. The XSDs themselves are still the best available documentation of the record shape if Georgia has an analogous child-welfare feed (Georgia’s live equivalent is SHINES via SOAP — IN/ejbModule/…​/services/shines/*, outside my surface).

  • AWS — Pinpoint SMS / Secrets Manager — 4 findings. Confirms the credential-resolution path is external (Secrets Manager + jasypt), which is why only property KEY names appear in source. BouncyCastle PGP (bcpg) hints at PGP-encrypted partner file exchange, though no PGP call site is in CPBATCH.

Appendix B — uncategorized findings

Findings the canonical-partner mapping did not place (distinct partner strings preserved; candidates for catalog rows if their families prove load-bearing):

  • [xsd-census] Correspondence print/mail vendor (IES notice generation → print stream) — batch XML document (envelope/batch structure) (worker-portal/CO/xsd/IESEnvelopeXMLSchema.xsd:5-56 (roots: batch → envelopes → envelope{coverSheetDetail, correspondences, coverSheetSw, providerCoverSheet, largePrintSw}, id attribute at :26); worker-portal/CO/xsd/IESFormXMLSchema.xsd:3-10 (root IESCorrespondence{metaData, formData}), :11-36 (metaData), :37+ (formData, 7099 ln total); 28 per-form validators in worker-portal/CO/ejbModule/META-INF/xsd/)

  • [xsd-census] Social-services / child-welfare & adult-services record feeds (CPS, CPS-Home, Adoption, FAJ foster care, ASCAP adult services) — batch record stream — header/body record with named DataItem fields (mainframe-style copybook expressed as XML) (worker-portal/IEWebApp/WebContent/XML/config/ — CPS.xsd:3-38 (DataItem @Name enumeration), :39-60 (Record/RecordBody/RecordHeader); CPSHome.xsd, Adoption.xsd, FAJ.xsd, ASCAP.xsd, AscapNew.xsd. Landing tables: worker-portal/DA/src/gov/state/nextgen/common/dao/generated/InServicesStatusAGenDAO.java:51 (IN_SERVICES_STATUS_A column list) and worker-portal/DA/src/gov/state/nextgen/common/cargo/custom/VInAscapDataForBridgesCargo.java:7 (V_IN_ASCAP_DATA_FOR_BRIDGES, comment 'SWSS inquiry'))

  • [xsd-census] IBM MQ / JMS messaging framework (the transport under several of the above feeds) — MQ/JMS — message envelope with queue + queueManager routing attributes (worker-portal/IEWebApp/WebContent/XML/config/dhs-message.xsd:6 (targetNamespace), :13-21 (Message{FwHeader, FwBody?, FwFooter?}), :23-31 (FwHeader{Route, Source, Action}), :33-44 (Route attributes messageId, corrId, queue, queueManager), :46-55 (Originator attributes sourceId, sessionId), :57-66 (Action attributes actionId, serviceId). Consumer app: worker-portal/JmsRecieveWebApp/)

  • [jms-mq] IBM MQ (WebSphere MQ) — the legacy Deloitte 'messaging framework' transport underneath every queue below — IBM MQ over JMS (com.ibm.mq.jms.MQQueueConnectionFactory, MQ client-mode TCP/IP bindings) (Connection config: worker-portal/IEApp_Properties/local_batch/messaging.properties:3-18 (queueConnectionFactory=com.ibm.mq.jms.MQQueueConnectionFactory, queuePort=1415, queueTransport=JMSC.MQJMS_TP_CLIENT_MQ_TCPIP, queueCcsId=819, queueHost/queueChannel=BRIDGES.CHANNEL/queueManager=DHS.BRIDGES.DEVr1_3/queue=muTriggerQueue, timeout.length=300, header.remove=on, RETRIAL_TIME_LIMIT=43200, MESS_EXCEPTION_NO_OF_ATTEMPTS=120). MQ error codes: worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/FwConstants.java:1601 (MQJMS2002), :1611 (MQJMS2008). MQ client jars on the FW module classpath: worker-portal/wpl_build_comp/wpl_build/xml/J2EEMODULE.properties:41 (com.ibm.mq.jar, com.ibm.mqjms.jar, com.ibm.mq.jmqi.jar, com.ibm.msg.client.*). Consumer loop: worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/FwMessageListener.java:70-129 (onMessage casts to TextMessage, discards malformed, delegates to connector), :158-191 (start/stop via QueueReceiver.setMessageListener). Connector: worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/AbstractMessagingConnector.java:103-121 (handleMessage → dispatcher.dispatch → messaging.connectorCommit(queueId)), :65-96 (per-queue stop-on-exception property from the messaging properties file). API surface: worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/IMessage.java:58-87 (sendForget x2, sendWait, connectorCommit). Producer entry: worker-portal/FW/ejbModule/gov/state/nextgen/framework/dao/custom/AbstractMessageDAO.java:36-48,:70-101 (DAO_TYPE_MESSAGING 'M'; queueId from connection config; persist → sendForget). Envelope schema: worker-portal/IEWebApp/WebContent/XML/config/dhs-message.xsd:13-66. Serializer: worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/FwXMLMessage.java:14-17,:87-88 (JDOM, FwConstants.MESSAGE_HEADER_ELEMENT). Reconnect: worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/FwMessagingExceptionListener.java:54-88 (ExceptionListener + java.util.Timer retry).)

  • [partner-keywords] IEVS (Income and Eligibility Verification System — umbrella) — umbrella label over the SSA/IRS/DOL/NDNH batch matches; no distinct IEVS endpoint (worker-portal/Common/src/gov/state/nextgen/common/dao/custom/DcDemographicsDAO.java:807 ("Interfaces Stage 2 CCB IEVS IRS Discrepancy Determination"); same comment at DcEducationDAO.java:703, DcIndvFamilyPlanningDAO.java:703; worker-portal/Common/src/gov/state/nextgen/common/dao/custom/DcCaseProgramIndvDAO.java:1459 (findByIEVSIRSIndvId); worker-portal/Common/src/gov/state/nextgen/common/dao/custom/InBeerDAO.java:234)

  • [properties-config] Silverpop / IBM Watson Campaign Automation (email + outreach campaigns) — SOAP via webMethods ESB (opt-in confirmation, bounced-email retrieval) + daily inbound csv batch (worker-portal/IEApp_Properties/Local/Application.properties:200-203 (comment '#silverpop', EMAIL_SILVERPOP_SERVICE_URL, CAMPAIGN_ID_EN, CAMPAIGN_ID_ES), :495-496 (SOLVE_CAMPAIGN_ID, SOLVE_CAMPAIGN_ID_ES), :510-517 (CPS_CAMPAIGN_ID, CPS_CAMPAIGN_ID_ES, SHINES_CC_REFERRAL_WS_CAMPAIGN_ID, PROVIDER_EC2/EC3/EC4_CAMPAIN_ID); worker-portal/IEApp_Properties/local_batch/Application.properties:105-113 (BOUNCED_EMAIL_USERNAME, BOUNCED_EMAIL_PASSWORD, SILVERPOP_BOUNCED_EMAIL_SERVICE_NAME/URL/_SPACE), :164-188 (EMAIL_SILVERPOP_SERVICE_URL, CAMPAIGN_ID_GAMMIS*, CAMPAIGN_ID_TPL, CAMPAIGN_ID_GVRA, CAMPAIGN_ID_*_PREVALIDATION incl. CAMPAIGN_ID_IRS_PREVALIDATION), :208-210 (CAMPAIGN_ID_EDBC, EDBC_EMAIL_RECEIPIENT), :297-304 (CO_OUTREACH_EMAIL_CAMPAIGN_DFCS/WIC/CC _EN/_SP, NO_OF_DAYS_TO_CHECK_OUTREACH); worker-portal/BATCH/CO/src/resource-mapping/coSilverPopInWriter.xml)

  • [properties-config] EIVS (electronic income verification service) — REST over HTTPS (worker-portal/IEApp_Properties/Local/Application.properties:628-639 (comment '#SR-82994 EIVS' and '#EIVS_PROPERTIES - R48'; EIVS_ENDPOINT_URL declared at 630 AND redeclared at 634, EIVS_SWITCH declared at 633 AND 639, EIVS_CLIENT_ID, EIVS_TIMEOUT, EIVS_WAIT, EIVS_CLIENT_KEY); worker-portal/IEApp_Properties/local_batch/Application.properties:306-309)

  • [properties-config] Informatica PowerCenter / MDM (ETL for conversion + reporting) — SSH remote command execution (pmcmd) against an ETL server with inbound/outbound file directories, plus an MDM host ([secret-bearing path withheld]:1-48 (hostname, username, password, port, knownHosts, channel, path, command, script, endscript, INFA_INT_SVC, INFA_DOMAIN, PM_USERNAME, PM_PASSWORD, pmcmd_cmd, directory, user_command, password_command, folder_command, workflow_command, runscript, script_path, param, reponame; MDMHostname/MDMUser/MDMPassword/MDMPort/MDMPath; ETLServer/InfaUser/InfaPassword/etlOutBoundPath/etlInBoundpath; BatchServer/BatchUser/BatchPassword/batchInboundpath/batchOutBoundpath); worker-portal/IEApp_Properties/local_batch/rp.properties:30-57 (same pmcmd key block for reporting); worker-portal/BATCH/CV_INFORM/src/META-INF/batch-jobs/CV-INFOR-DLY.xml; worker-portal/BATCH/RP/src/META-INF/batch-jobs/RP-INFOR-DLY.xml)

  • [properties-config] Okta (SAML SSO identity provider) + LDAP directory — SAML 2.0 over HTTP-POST; LDAP/LDAPS for worker directory (worker-portal/IEApp_Properties/Local/Application.properties:574-606 (comment '#SR-121983 - SAML Assertion with OKTA'; SAMLAUTHSWITCH, STATIC_LOGIN_DATASOURCE, SAML_ASSERTION, SAML_PROTOCOL, SAML_NAMEIDPOLICY_FORMAT, SAML_AUTHREQ_PROTOCOL, KEY_STORE_TYPE, KEY_STORE_FILE, SAML_WP_KEYSTORE_JKS_PATH, WP_JKS_PICK_TYPE, KEY_STORE_PRIV_KEY_AL, KEY_STORE_CRT_KEY_AL, ENV_LOGOUT_REDIRECTION_URL, WP_AUTH_CONSUMER_URL, WP_ENTITY_ID, WP_KEYSTORES_PASSWORD), :447-472 (LDAP_URL, LDAP_FACTORY, LDAP_PEOPLE_SEARCH_BASE, LDAP_FAILOVER_COUNT, WORKER_LDAP_FAILOVER_COUNT, WORKER_LDAP_ADMIN_USER, WORKER_LDAP_ADMIN_PASSWORD, LDAP_SECURITY_AUTHENTICATION, LDAP_TRUST_STORE, LDAP_SECURITY_PROTOCOL); worker-portal/IEApp_Properties/Local/login.properties:5-36 (CYCLE, SSL_APP_NDS, SSL_BROWSER_WEB, HOME_PAGE, LOGIN_PAGE, USE_NDS_ROLES, USE_APP_ROLES, APPLICATION_ID, AUTHENTICATION_REQUIRED, RESTRICT_MULTIPLE_LOGINS, SUSPICIOUS_WORDS, MAX_LOGIN_ATTEMPTS, LOGIN_REDIRECT_FLAG, LOGIN_REDIRECT_URL, LOGOUT_REDIRECT_URL))

  • [properties-config] Mobile Gateway / QR-code scanner clients — JAX-WS SOAP endpoints (worker-portal/IEWebApp/WebContent/WEB-INF/sun-jaxws.xml:161-168; worker-portal/IEWebApp/WebContent/WEB-INF/web.xml:574, 597-611; worker-portal/IEApp_Properties/Local/Application.properties:611 (comment '#SR-49123 for QR_CODE_CR'))

  • [properties-config] Miscellaneous partner file feeds with no vendor-named config key — batch file (+ SQL*Loader where staged) (worker-portal/BATCH/IN/src/resource-mapping/koala-rcv-dly-mapping.xml, mchb-rcv-dly-mapping.xml, dms-dly-mapping.xml, ded-rcv-mapping.xml, mk-trig-mapping.xml, DocRcvDlyRecord.xml; worker-portal/BATCH/IN/sql-loader-control/InRcDocPrisionerDetailsCtl.ctl; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ (package listing: avs beers bendex bor cola decal ded dis dms doc doe dol ebtas ertpl experian ffm gammis gar gdol gvra informal irs koala lexnexresponse liheap lis lnreq maxstar mchb mktrig nac ndnh newhire paris pckcert pcktpl pcs peoplesoft peoplesoftap preval pthtpl save sdx shbp shines smsoptinoptout solve spop stars sves tanf tcsg tpl truven wic xerox))

  • [properties-config] Batch job scheduling / invocation contract (all file partners) — external scheduler invoking a ksh launcher with JOB_NAME + a parameter string (worker-portal/BATCH/IN/scripts/IN-BATCH-RUN.ksh:1-27; worker-portal/BATCH/IN/scripts/IN-BATCH-RUN-PARAMETERS.ksh:1-28 (usage line documents the parameter string form); worker-portal/BATCH/IN/src/META-INF/batch-jobs/*.xml (226 files); worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-SNIRS-MLY.xml:7-14 (property block))

  • [cp-bridges] IBM SilverPop / Watson Campaign Automation — transactional email (opt-in confirmation) — SOAP via webMethods GAIES_SilverPop.wsProvider:optInEmailConfirmation (WSDL: customer-portal/bridgesClient/META-INF/SilverPop/GAIES_SilverPop_wsProvider_optInEmailConfirmation_Port_1.wsdl:2 (definitions), :5-63 (types), :74-82 (portType/operation), :92-94 (service + soap:address). Call: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2040 (CallSilverPopOptInEmail), :2042 (AppConstants.PROP_OPT_IN_EMAIL_URL). Fluent builder: bridgesClient/gov/state/nextgen/business/services/mailing/SendEmailService.java:22 (class), :34-54 (toAddress/withCampaign/withTag/withValue/send), :64-66 (BODYTYPE env property, XTMAILING.RECIPIENT), :86 (delegates to CallWebService.CallSilverPopOptInEmail). Payload type: bridgesClient/nsoptinemailconfirmation/mailing/XTMAILING.java:69-72, :155-160, :262-265. CONSUMERS IN MY SURFACE: securityEJB/ejbModule/gov/state/nextgen/access/business/services/SecurityHelperEJBBean.java:1490, :8036, :8173, :10386, :10573; afbEJB/ejbModule/gov/state/nextgen/access/business/services/RegistrationEJBBean.java:2217. Key: sharedApp/…​/AppConstants.java:4417 = "OptInEmailConfirmation")

  • [cp-bridges] IBM SilverPop / Watson Campaign Automation — bounced-email list retrieval — SOAP via webMethods GAIES_SilverPop.wsProvider.getBouncedEmailList (customer-portal/bridgesClient/nsgetbouncedemaillist/GetBouncedEmailListPortType.java:16 (@WebService, targetNamespace nsgetBouncedEmailList), :30 (@WebMethod action GAIES_SilverPop_wsProvider_getBouncedEmailList_Binder_getBouncedEmailList). Also GAIESSilverPopWsProviderGetBouncedEmailList.java, BouncedEmailResponse.java, GetBouncedEmailListResponse.java, Fault.java in the same package.)

  • [cp-bridges] Deloitte — Task Management (worker task queue) — SOAP, service TaskManagementService, namespace http://taskmanagement.deloitte.com (WSDL: customer-portal/bridgesClient/META-INF/TaskManagement/TaskManagement.wsdl:3 (targetNamespace), :41-60 (portType/operation createTask), :82-87 (service + wsdlsoap:address). Schema: bridgesClient/META-INF/TaskManagement/SS_TaskManagement.xsd:8-22. Client: bridgesClient/com/deloitte/taskmanagement/TaskManagementService.java:27-51. Entities: bridgesClient/com/deloitte/taskmanagement/selfservicetm/webserviceentities/)

  • [cp-bridges] UploadPdfXmlService / DcAutoAppRegistration — application PDF+XML handoff and auto-registration to the worker system — SOAP, direct worker-portal services at /cpsecure/UploadPdfXmlService?wsdl and /cpsecure/DcAutoAppRegistration?wsdl (Calls: customer-portal/bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2507 (callUploadPdfXmlService(XmlFile)), :2514 (AppConstants.APP_PDF_XML_UPLOAD), :2341 (callAutoReg(appNum)), :2348 (AppConstants.AUTOMAGIC_FC_URL), :2667 (updateAutoAppReg). Stubs: bridgesClient/gov/state/nextgen/business/ejb/services/st/uploadpdfxmlservice/ (UploadPdfXmlService.java, UploadPdfXmlService_Service.java, UploadPdfXmlServiceSOAPProxy.java, UploadAppPdfXmlFile.java, XmlFile.java) and bridgesClient/gov/state/nextgen/business/ejb/services/dc/autoreg/ (DcAutoAppRegistrationBean.java, DcAutoAppRegistrationService.java). CONSUMER IN MY SURFACE: afbEJB/ejbModule/gov/state/nextgen/access/business/services/ABTransactionManagedEJBBean.java:772 (callAutoReg), :781 (updateAutoAppReg), :319/:987 (callAppNumGenerateWebService), :575/:4586 (callAppCreationWebService), :606/:635/:675 (updateDocumentMetaDataToWP). Keys: sharedApp/…​/AppConstants.java:1881-1882; endpoints framework/properties/config/production_env.properties:163, :166)

  • [cp-bridges] Google Cloud Document AI — pay-stub OCR/entity extraction — gRPC over HTTPS via the Google Cloud Java SDK (com.google.cloud.documentai.v1.DocumentProcessorServiceClient); OAuth2 scope cloud-platform (Mapping half IN MY SURFACE: customer-portal/accessEJB/ejbModule/gov/state/nextgen/access/business/services/GoogleAIPaySlipDataBean.java:49 (class), :63 (processPaySlipParserResponse(selectedpaystubId, docName, PayslipParserResponse)), :309/:345/:400/:440/:489 (payslip, direct-deposit, earning, tax, deduction item persistence), :517 (processSubmitReview with approve/deny outcome). SDK half OUTSIDE my surface: access/JavaSource/gov/state/nextgen/access/steadyiq/api/model/PaySlipService.java:40-47 (documentai v1 imports), :423/:1038 (setPayslipParserResponse), :991 (createScoped cloud-platform). Model: commonApp/gov/state/nextgen/access/google/api/model/payslip/PayslipParserResponse.java:8)

  • [cp-bridges] SFTP file drop — application PDF retrieval fallback — SFTP; file path stored per-application in the DB (CP_APP_PDF_XML cargo) (IN MY SURFACE: customer-portal/afbEJB/ejbModule/gov/state/nextgen/access/business/services/ABTransactionManagedEJBBean.java:3010-3019 (CP_APP_PDF_XML_Cargo; es_dis_doc_id / es_sftp_file_name vs en_dis_doc_id / en_sftp_file_name), :3020-3028 (three-tier fallback: downloadPdfFromDis → downloadPdfFromSftp → generatePdfFromXml), :3032 (FATAL log "DIS download and SFTP pull failed"). Impl OUTSIDE my surface: commonApp/gov/state/nextgen/access/business/rules/DocumentManagementBO.java:5389-5407 (downloadPdfFromSftp; :5401 logs "CP PDF file decryption is complete"))

  • [cp-bridges] Legacy CP account-registration SOAP contract (http://security.cp.nextgen.state.gov) — SOAP, JAX-WS generated (IBM RI, JDK 6 era) (customer-portal/securityEJB/ejbModule/gov/state/nextgen/cp/security/package-info.java:1-6 (generator banner + @XmlSchema namespace), RegisterRequest.java:40-55 (@XmlType propOrder + fields), CreateAccount.java:40-41, QAPair.java:40-42, CreateAccountResponse.java:38-60, ArrayOfQAPair.java, ArrayOfXsdNillableString.java, RegisterResponse.java, ObjectFactory.java)

  • [cp-bridges] Referenced-but-out-of-surface endpoints (recorded for completeness, not verified in my four modules) — SOAP / REST / HTTPS (customer-portal/framework/properties/config/production_env.properties: :325 RTEWebservice and :328 RTEWebserviceV12 (Oracle Policy Automation determinations-server, /OPA/assess/soap/specific/10.4/Medicaid and /opaprd/determinations-server/assess/soap/generic/12.2.1/Medicaid — referenced from sharedApp/…​/AppConstants.java, real-time Medicaid rules evaluation; see also the separate CorticonEJB module, not in my surface); :349 CAPTCHA_URL (Google reCAPTCHA Enterprise assessments — consumed via framework/gov/state/nextgen/framework/security/GoogleRecaptcha, imported by securityEJB/SecurityHelperEJBBean.java:142-165 across ~24 event types); :359 SERVICENOW_URL (ServiceNow DSNAP portal redirect); :403-404 REST_SMS_SERVICE_CONFIG_URL / REST_SAVE_SMS_SERVICE_URL (worker-portal SMS config + text-history REST); :272 COMPASS_REDIRECT_URL; :140 RETRIEVE_NOTICES_URL (SelfServiceNoticesIntegrationService); :19 dbms.url (Oracle thin JDBC to the CP transaction DB))

  • [topology] Georgia Secretary of State (SEC/SOS) — voter registration — batch file over SFTP via MFT (worker-portal/IN/webMethods/'[secret-bearing path withheld]':7369 (IES_SEC_OUTBOUND_DAILY_SOS_VOTER_FILE))

  • [topology] LIS (Medicare Low Income Subsidy) — batch file over SFTP via MFT (worker-portal/IN/webMethods/ActiveTransfer_Sprint3_v1:628 (LIS_IES_INBOUND_DAILY_FILE); a second inbound variant at [withheld]:1933 (SSA_IES_INBOUND_LOW_INCOME_SUBSIDY))

  • [topology] SilverPop (Engage — outbound email/notification vendor) — raw HTTPS POST via pub.client:http (two-leg session protocol), plus MFT batch file legs (worker-portal/IN/webMethods/GAIES_SilverPop10_09232015.zip → ns/GAIES_SilverPop/services/getBouncedEmailList/flow.xml: first pub.client:http at line 694 posting /UserAuth, status branch at 1580, EXIT FROM="Try" SIGNAL="SUCCESS" at 2446, session gate BRANCH SWITCH="/Engage_Sessionid/EngageSessionid/Envelope/Body/RESULT/SUCCESS" at 4116 → true branch second pub.client:http at 4126, false branch publishLog at 6138; …/services/optInEmailConfirmation/flow.xml single http at 640 posting Transact_Request/TranscantRequest/RequestXML. Batch legs: worker-portal/IN/webMethods/Active_Events_23SEP2015_CR01:554 (SILVERPOP_IES_INBOUND_BOUNCED_EMAIL_FILE), :695 (IES_SILVERPOP_OUTBOUND_NIGHTLY_CORRESPONDANCE_FILE). Canonical header: interfaceCode=SilverPop, direction=Outbound, 'HTTP call to SILVERPOP')

  • [topology] COMPASS / VIDA / P4HB — one-time conversion loads — batch file over SFTP via MFT (worker-portal/IN/webMethods/P4HB_VIDA_COMPASS_IES_EVENTS_DEV_15OCT15_1021:1 (COMPASS_IES_INBOUND_INTERIM_CONVERSION_FILE), :90 (P4HB_IES_INBOUND_ONE_TIME_CONVERSION_FILE), :179 (VIDA_IES_INBOUND_ONE_TIME_CONVERSION_FILE))

  • [in-webmethods] SilverPop (email/correspondence delivery SaaS — Engage/Transact) — SOAP (wsProvider) + nightly batch file out, bounced-email file in (worker-portal/IN/webMethods/GAIES_SilverPop10_09232015.zip → ns/GAIES_SilverPop/services/{optInEmailConfirmation,getBouncedEmailList}, ns/GAIES_SilverPop/wsProvider/{optInEmailConfirmation,getBouncedEmailList}, ns/GAIES_SilverPop/doc/*; batch at worker-portal/IN/webMethods/Active_Events_23SEP2015_CR01 (IES_SILVERPOP_OUTBOUND_NIGHTLY_CORRESPONDANCE_FILE (sic), SILVERPOP_IES_INBOUND_BOUNCED_EMAIL_FILE))

  • [in-webmethods] Georgia Secretary of State / voter registration (NVRA) — batch file over SFTP/FTP via webMethods ActiveTransfer (worker-portal/IN/webMethods/[secret-bearing path withheld] → IES_SEC_OUTBOUND_DAILY_SOS_VOTER_FILE (token InSndMlySOSDat:7394), IES_DOED_OUTBOUND_MONTHLY_DMS_VOTER_FILE (token InSndMlyDMS:2548))

  • [in-ejb-common] EIVS — Electronic Income Verification System (IEVS-class) — REST over java.net.http.HttpClient (worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/eivs/EivsServiceBO.java:32 (java.net.http.HttpResponse); eivs/EivsInterface.java:4; sibling files EivsServiceBean.java, EivsServiceReqVO.java, EivsResponseCustomVO.java, TaskOperation.java; common/src/gov/state/nextgen/in/bo/InEivsCommonBO.java; ejbModule/…​/in/INIVSSummaryEJBBean.java)

  • [in-ejb-common] SilverPop — outbound email / opt-in notification vendor — SOAP via webMethods IS package GAIES_SilverPop on :9445, service wsProvider.optInEmailConfirmation (Axis2 stub) (worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/silverpop/{GAIES_SilverPopWsProviderOptInEmailConfirmationStub.java,util/}; common/src/gov/state/nextgen/in/bo/SilverPopWebServiceBO.java; webMethods/GAIES_SilverPop10_09232015.zip)

  • [in-ejb-common] Text / SMS configuration service — Gateway is the PROVIDER (only REST provider in the surface) — REST (JAX-RS), with a SecurityInterceptor on the application (worker-portal/IN/common/src/gov/state/nextgen/in/services/{RestApplication,SecurityInterceptor,InTextConfigService,InTextHistoryService,InTriggerTableService}.java; common/src/gov/state/nextgen/in/services/model/{DcInsertSmsTriggerResponse,DcSmsTriggerTableRequest,LanguageMapping,TextConfigurationResponse}.java; common/src/gov/state/nextgen/in/services/bo/{InTextBo,InTextBoImpl}.java)

  • [in-ejb-common] QR Scanner lookup — Gateway is the PROVIDER — SOAP; JAX-WS provider on :9083 (worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/qrscanner/QRScannerLookupService.java:17; ejbModule/META-INF/wsdl/QRScannerLookup.wsdl)

  • [in-ejb-common] Secondary DB-backed inbound interfaces (no wire client in this surface) — batch-loaded into DB elsewhere; surfaced read-only through EJB session beans + response BOs (worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/in/ — INAMSEBTASSessionEJBBean (EBT account status), INBORSessionEJBBean + INBRSBorSessionEJBBean (Benefit Overpayment/Recovery), INCAPSEAInqSessionEJBBean (CAPS), INCCUBSCCCoPayInfoEJBBean (child-care co-pay), INLiheapSessionEJBBean (LIHEAP), INSHBPSessionEJBBean (State Health Benefit Plan), INTCSGSessionEJBBean (Technical College System of GA), INSSCSessionEJBBean, INLBSLnBenefitsSessionEJBBean, INHHCRDOTInqSessionEJBBean, INExParteIndvSessionEJBBean, InCdcReferralSessionEJB, INTISTransunionSummaryEJBBean (TransUnion), INIQSSteadyIqSummaryEJBBean (Steady IQ), INLSSSummaryEJBBean, INIRSummaryEJBBean, INMSPDRSSummaryPopupEJBBEAN, InRecWlyTwistETSearchSessionEJBBean; matching BOs in common/src/gov/state/nextgen/in/bo/ incl. INEbtasResponseBO, InBorResponseBO, INShbpResponseBO, INTCSGResponseBO, INSSCResponseBO, INLiheapBO, INLBSLnBenefitsBO, INHHCDOTInqBO, PvInquiryBO, PrisonerInfo, PrisonerFacilityInfo, InLisRecordBO, INDASResponseBO, INDRSResonseBO, INPayrollProcessingBO)

  • [batch-in-jobs] SMS notification vendor (opt-in / opt-out feed) — batch file (job worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCVSMS-DLY.xml (package …in.batch.smsoptinoptout, mappingFile resource-mapping/smsoptinoptout-rcv-dly-mapping.xml))

  • [batch-in-jobs] DED (deduction/expense exchange — partner not decoded) — batch file (jobs worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-RCDED-MLY,IN-SNDED-MLY}.xml (package …in.batch.ded); component scan worker-portal/BATCH/IN/src/META-INF/batch.xml:16)

  • [batch-in-jobs] CROSS-CUTTING — job framework contract (applies to every inbound file interface) — drop-directory file pickup with pattern match, single-file + record-count preconditions, post-validation, and archive (worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCSDX-DLY.xml lines 30-63 (FileExistenceCheckPatternMatch, NGSingleFileExistenceCheck with singlefileChkOvrd, NGRecordCountCheck with countChkOvrd), lines 160-175 (BatchPostValidationBatchlet, NGBatchFileArchiveBatchlet), lines 184-203 (InAlertSkipBatchlet with steps='process','postProcess'); launcher worker-portal/BATCH/IN/scripts/IN-BATCH-RUN-PARAMETERS.ksh:5 (documents the parameter set: asOfDate, commitInterval, pageSize, skipLimit) and :22 (gov.state.nextgen.framework.batch.launch.NGCommandLineJobOperator <JOB> -start -parameters …); Spring wiring worker-portal/BATCH/IN/src/META-INF/batch.xml (component-scan list, lines 15-51))

  • [batch-in-partners-a-l] Job-training / employment-services partner — package 'ded' — batch file (BeanIO fixedlength inbound; outbound roster written from eligibility data) (worker-portal/BATCH/IN/src/resource-mapping/ded-rcv-mapping.xml:4-18 (exact positions/lengths); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ded/bo/impl/DedRcvBOImpl.java:3-6 (InDedJtrainCargo/Collection — IN_DED_JTRAIN staging); …​/ded/bo/impl/DedSndBOImpl.java:3-4 (EdEligibilityCargo/Collection); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ded/util/DedSndRecord.java:14-17 (ssn, programCd))

  • [batch-in-partners-m-z] SMS notification vendor (opt-in / opt-out roster) — batch file (worker-portal/BATCH/IN/src/resource-mapping/smsoptinoptout-rcv-dly-mapping.xml:3-45 (stream SmsOptInOptOutRecords, delimited ','; Filler1 minOccurs/maxOccurs=2, Filler2, Header with literal OPT_IN_OUT_DETAIL_ID, detail record); worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/smsoptinoptout/)

  • [batch-small-a-i] SilverPop (IBM/Acoustic email campaign platform) — batch file (CSV export to a service directory) (worker-portal/BATCH/CO/src/resource-mapping/coSilverPopInWriter.xml:4 (stream, format csv), :12 (coSilverPopInFileHeaderName). Job: CO/src/META-INF/batch-jobs/CO-SILVERPOPIN-DLY.xml:37-46 (CoSilverPopInReader/Processor/Writer bound to coSilverPopInWriterXmlStreamName). Service package path referenced in build config: /nextgen/co/batch/services/silverpop/.)

  • [batch-small-a-i] PIEA (inbound file feed; expansion not stated in source) — batch file (worker-portal/BATCH/CO/src/resource-mapping/piea-dly-mapping.xml:3 (pieaFileStream, csv), :11 (pieaFileHeadergov.state.nextgen.co.batch.util.PieaFileHeader), :32 (pieaFileRecordPieaFileRecord). Job: CO/src/META-INF/batch-jobs/CO-PIEA-DLY.xml. BOs: CO/src/gov/state/nextgen/co/batch/bo/PIEABO.java:15, CO/src/gov/state/nextgen/co/batch/bo/impl/PIEABOImpl.java:102, CO/src/gov/state/nextgen/co/batch/processor/PIEAProcessor.java:66.)

  • [batch-small-a-i] Case extract (bulk outbound case data feed; recipient not named in source) — batch file (worker-portal/BATCH/DC/src/resource-mapping/caseExtractWriter.xml:4 (stream, format csv), :12 (caseExtractWriterRecordName); DC/src/resource-mapping/caseExtractReader.xml. Job: DC/src/META-INF/batch-jobs/DC-CASEEXTRACT-DLY.xml.)

  • [batch-small-a-i] Shared batch transport/security layer (framework — applies to all partner feeds above) — SFTP (SFTPUtil, SFTPCopyBatchlet), PGP encrypt/decrypt (PGPSecurity, NGBeanIOPGPItemReader), Oracle SQL*Loader bulk load (SqlLoadUtil, FileSQLLoadBatchlet), directory move (MoveFileBatchlet) (worker-portal/BATCH/FW/src/gov/state/nextgen/framework/batch/util/SFTPUtil.java; FW/src/gov/state/nextgen/framework/batch/security/PGPSecurity.java; FW/src/gov/state/nextgen/framework/batch/util/NGBeanIOPGPItemReader.java; FW/src/gov/state/nextgen/framework/batch/util/batchlet/SFTPCopyBatchlet.java; FW/src/gov/state/nextgen/framework/batch/util/SqlLoadUtil.java + batchlet/FileSQLLoadBatchlet.java; FW/src/gov/state/nextgen/framework/batch/util/batchlet/SVESEMPIMergeBatchlet.java; FW/src/gov/state/nextgen/framework/batch/util/batchlet/GammisEbtasMoveBatchlet.java; FW/src/gov/state/nextgen/framework/batch/util/batchlet/NGBatchCleanEBCDICCharsBatchlet.java + NGBatchCleanEBCDICCharsZeroBatchlet.java. Precondition/lifecycle batchlets: FileExistenceCheck.java, FileExistenceCheckPatternMatch.java, MergeFileExistenceCheck.java, NGEmptyFileCheck.java, NGBatchDateCheck.java, NGBatchFileArchiveBatchlet.java, NGBatchMergeFileArchiveBatchlet.java, NGBatchMultiFileArchiveBatchlet.java, NGBatchArchiveMultipleFileBatchlet.java, NGFilePartitionMapper.java, NGBatchSequencePartitionMapper.java. SQL*Loader control files: CO/sql-loader-control/. Engine: JSR-352 (jakarta batch, jobXML_1_0.xsd) across all src/META-INF/batch-jobs/*.xml.)

  • [batch-small-j-z] Oracle BI Publisher (BIP / xmlpserver) — report generation & scheduling engine — SOAP (Apache Axis 1.x generated client stubs; WSDL-derived) (worker-portal/BATCH/RP/webClient/scheduleServices/src/com/oracle/xmlns/oxp/service/v2/ScheduleService_PortType.java:11-35 (35 operations: scheduleReport, scheduleReportInSession, deliveryService, getScheduledReportStatus, getDocumentData, getXMLData, downloadDocumentData, getAllScheduledReportHistory, resendScheduledReport, …); worker-portal/BATCH/RP/webClient/scheduleServices/src/com/oracle/xmlns/oxp/service/v2/ScheduleService_ServiceLocator.java:25 (default endpoint path /xmlpserver/services/v2/ScheduleService); worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/facade/ReportingScheduleFacade.java; worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/facade/FTPReportingScheduleFacade.java:43-59, 62-79)

  • [batch-small-j-z] Reports SFTP server — PC→RC completion manifest (control file) — Remote shell append over SSH exec channel (echo >> file) on the reports host (worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/writer/RpCopyFileSystemToDbBatchWriter.java:172-197 (prepareUpdateTxtCmd builds the echo/append command; separate invocations for REPORT_TYPE_PDF and REPORT_TYPE_EXCEL at lines 151-170); worker-portal/BATCH/RP/src/gov/state/nextgen/rp/batch/util/RpBatchConstants.java:92-97 (pc_to_rc.file_location, pc_to_rc.file_name_suffix, pc_to_rc.script_folder, pc_to_rc.archive_script_name, pc_to_rc.cleanfs_script_name))

  • [batch-small-j-z] Informatica PowerCenter 9.6.1 (ETL / data-warehouse loader) — Remote command execution — ssh to the Informatica host, then pmcmd startworkflow (worker-portal/BATCH/RP/scripts/rprunworkflows.ksh:7 (INFA_HOME …​/Informatica/9.6.1/server), :34-41, :79 (pmcmd startworkflow invocation); worker-portal/BATCH/RP/scripts/RP-RUNWF-COR.ksh:24,43-44 (ssh $account@$server $scriptPath … forwarding userId/password/folder/workflow/paramfile/intservice/domain/reponame/portnum); worker-portal/BATCH/RP/src/META-INF/batch-jobs/RP-INFOR-DLY.xml:7-8 (folder + workflowname job parameters); batchlet gov.state.nextgen.rp.batch.batchlet.DetermineInformaticaBatchlet referenced by RP-INFOR-DLY.xml and every RP-S1INIT / S2STGDIMS / S3STGAPP / S3STGREN / S3STGTASKCAP / S4STGAPP / S5BIDIM / S6BIAGGT / S6BIFACT / S7BIARCHIVE job)

  • [batch-small-j-z] SMS notification gateway (external REST messaging service) — HTTPS REST (Spring RestTemplate; POST to send, GET to fetch per-notification-type config) (worker-portal/BATCH/SS/src/gov/state/nextgen/cp/batch/util/SMSApi.java:760-782 (callRestEndPointGetConfig — GET + Basic auth), :846-930 (sendSmsRequest — POST JSON + Basic auth); worker-portal/BATCH/SS/src/gov/state/nextgen/cp/batch/util/SmsMessageRequest.java:13-61; worker-portal/BATCH/SS/src/gov/state/nextgen/cp/batch/util/SmsMessageResponse.java:20-32; worker-portal/BATCH/SS/src/gov/state/nextgen/cp/batch/util/TextMessageCPHistoryRequest.java:47-159 (caseNum, appNum, clientId, phoneNum, firstName, lastName, ssn, dob, sex, textDate, programs, textMessage, createUserId, status, notificationType); worker-portal/BATCH/SS/src/gov/state/nextgen/cp/batch/util/TextMessageHistoryResponse.java:48-200; worker-portal/BATCH/SS/src/META-INF/batch-jobs/SS-PURNOTIFY-DLY.xml)

  • [batch-small-j-z] NONE — QC (Quality Control) batch module — n/a (worker-portal/BATCH/QC — 6 files total: qc-build.xml, sonar-project.properties, src/META-INF/batch.xml (Spring component-scan of gov.state.nextgen.qc.batch.bo.impl only), and three .gitkeep placeholders in scripts/, src/META-INF/batch-jobs/, src/gov/state/nextgen/qc/batch/)

  • [batch-small-j-z] NONE — RD batch module — n/a (worker-portal/BATCH/RD — 5 files total: rd-build.xml, src/META-INF/batch.xml (component-scan of gov.state.nextgen.rd.batch.bo.impl), and .gitkeep placeholders in scripts/, src/META-INF/batch-jobs/, src/gov/state/nextgen/rd/batch/)

  • [batch-small-j-z] NONE — SF (Support Functions: task routing, assignment, appointment scheduling) — database + internal SMTP notification framework (worker-portal/BATCH/SF/src/META-INF/batch-jobs/ (43 XMLs: SF-TASKS-DLY, SF-TASKIDASSIGN-DLY, SF-AUTOAPPTSCHEDULE-DLY, SF-QCSC-MLY, SF-ENRTSK-MLY, …); negative-evidence grep over SF/ for RestTemplate|HttpURLConnection|javax.jms|axis|SOAP|WebService|HttpClient|URLConnection returned ZERO files; negative-evidence grep for FileWriter|FileOutputStream|BufferedWriter|Files.write|FlatFile|PrintWriter returned ZERO files; worker-portal/BATCH/SF/src/gov/state/nextgen/sf/batch/batchlet/SFEmailBatchlet.java:23,53-69 (extends the shared framework EmailNotificationBatchlet; recipients are internal worker email addresses selected by findInactiveUserForEmail))

  • [batch-small-j-z] NONE — WC (Work Component / work-program) batch module — database (worker-portal/BATCH/WC/src/META-INF/batch-jobs/WC-DISEN-MLY.xml, WC-DMDHRS-ONR.xml; chunk reader/processor/writer triples at WC/src/gov/state/nextgen/wc/batch/chunk/{reader,processor,writer}/{Disenrollment,DeemedHours}*.java; same two negative-evidence greps as SF (external transports, file writers) returned ZERO files across WC/)

  • [cp-batch] IBM Silverpop / Watson Campaign Automation (transactional + opt-in email to applicants) — SOAP (Axis2 generated stub GAIES_SilverPopWsProviderOptInEmailConfirmationStub), endpoint from config key EMAIL_SILVERPOP_SERVICE_URL (customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/facade/EmailNotificationFacade.java:23-35 (silverpop stub/entity imports), :89-105 (stub construction, Transact_Request.setRequestXML, invoke), :151-153 + :180-190 (Recipient/BodyType/CampaignId/Personalization TagName+Value); customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/EmailNotificationBatchlet.java:46, :102, :121-123; URL constant customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/constants/NGBatchConstants.java:148)

  • [cp-batch] RSA adaptive authentication / risk engine — vendor client library (rsaexternal.jar, rsadapterspi.jar on the batch classpath) (customer-portal/CPBATCH/lib/nextgen_external/rsaexternal.jar, customer-portal/CPBATCH/lib/nextgen_external/rsadapterspi.jar (listed on the batch classpath by customer-portal/CPBATCH/CP/scripts/setClasspath.ksh:4))

  • [cp-batch] Payee web service (benefit payee / vendor payment) — SOAP client (payeeWSClient.jar; Axis/Axis2 on classpath) (customer-portal/CPBATCH/lib/nextgen_internal/payeeWSClient.jar; customer-portal/CPBATCH/lib/nextgen_external/axis.jar + axis2-kernel.jar)

  • [cp-batch] Scheduling service (appointment scheduling) — service client jar (scheduleServices.jar) (customer-portal/CPBATCH/lib/nextgen_internal/scheduleServices.jar)

  • [cp-batch] SMTP relay (operational batch notifications) — SMTP (javax.mail 1.4.7), STARTTLS + SSL socket-factory configurable (customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/enums/NGBatchConfiguration.java:26-41 (mail.smtp.* keys and email.{edbc,gammis,ebtas,abdpna,doe}.receipient); templates customer-portal/CPBATCH/FW/src/emailTemplate.vm and customer-portal/CPBATCH/FW/src/edbcEmailTemplate.vm; listener wired in every job, e.g. customer-portal/CPBATCH/CP/src/META-INF/batch-jobs/CP-WPINT-DLY.xml:21)

  • [cp-batch] Legacy mainframe fixed-width feeds (partner unnamed) — batch file (customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/batchlet/NGBatchCleanEBCDICCharsBatchlet.java:132-158 (filterCharactersFromFile), :174-175 (isEBCDICControl code-point range); sibling NGBatchCleanEBCDICCharsZeroBatchlet.java)

  • [cp-batch] Oracle database (shared IE_SSP_OWNER schema) / Spring Batch job repository — JDBC (ojdbc6), DBCP2/HikariCP pool; plus Oracle SQL*Loader for bulk file ingest (customer-portal/CPBATCH/FW/src/baseContext.xml:12 (batch:job-repository), :35-80 (dataSource / dbcpDataSource / hikari, all values as ${batch.jdbc.*} placeholders — no credentials in source); customer-portal/CPBATCH/CP/src/batch-fast4j-properties/common-fast4jCustomDAOsList.properties (batch job/step/param DAO bindings); customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/util/SqlLoadUtil.java + util/batchlet/FileSQLLoadBatchlet.java; customer-portal/CPBATCH/CP/sql-loader-control/CPeDirClnCtl.ctl:4 (schema IE_SSP_OWNER))

  • [cp-batch] Google Geocoder / address service — HTTP client library (geocoder-java-0.15) (customer-portal/CPBATCH/lib/nextgen_external/geocoder-java-0.15.jar)

  • [cp-ejbs] Google Document AI — payslip/paystub parser — REST/JSON (document upload → parsed fields); fronted in Gateway by a JAX-RS POST multipart facade (customer-portal/commonApp/gov/state/nextgen/access/google/api/model/payslip/PayslipParserResponse.java:1-79 and siblings in the same dir. Invoker outside surface: customer-portal/accessEJB/ejbModule/gov/state/nextgen/access/business/services/GoogleAIPaySlipDataBean.java and customer-portal/access/JavaSource/gov/state/nextgen/access/steadyiq/api/model/PaySlipService.java:19-34 (javax.ws.rs POST/Consumes/Produces, commons-fileupload, Tika, commons-imaging). Landing entity: commonApp/gov/state/nextgen/access/business/entities/InPayslipParser{Cargo,Collection}.java)

  • [cp-ejbs] SilverPop / IBM-Acoustic Campaign (opt-in email confirmation) — SOAP via webMethods wsProvider (GAIESSilverPopWsProvider:OptInEmailConfirmation) (commonApp call site: customer-portal/commonApp/gov/state/nextgen/services/bo/IVREmailVerificationServiceBo.java:622 CallWebService.CallSilverPopOptInEmail(xml). rmcEJB call site: customer-portal/rmcEJB/ejbModule/gov/state/nextgen/access/business/services/RMCHouseHoldInfoEJBBean.java:17157. Client: bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:2040-2090 (GAIESSilverPopWsProviderOptInEmailConfirmation port, env key AppConstants.PROP_OPT_IN_EMAIL_URL))

  • [cp-ejbs] Georgia Gateway worker portal / IES core, via the 'CMB' (case management bridge) SOAP bridge — SOAP over the CMB bridge URL; secured vs unsecured endpoint chosen at runtime by a WS-Security auth flag (Endpoint selection: customer-portal/commonApp/gov/state/nextgen/access/services/cpaccsearch/CPAccSearchBO.java:292-301 and :322-331 (AppConstants.SECURED_CMB_BRIDGE_URL_KEY vs CMB_BRIDGE_URL_KEY on WsSecurityUtil.getAuthFlag()), callCMBCaseAssocDetailWebService at :302 and :332. Operation catalog (client side, adjacent surface): bridgesClient/gov/state/nextgen/business/ejb/services/st/CallWebService.java:1359 callCMBCaseSummaryWebService, :1403 callCMBCaseDetailWebService, :1446 callCMBCaseAssocDetailWebService, :1489 callValidateCaseAssociation, :1530 callCMBCheckHeadofHouseHold, :1572 fetchClientBenfits, :1684 callClientIDCheckWebService, :1720 callRMBRMCWebService, :1767 callRMCAlertWebService, :1924 getAppStatusFromWP, :1965 callRetrieveNotification, :2003 callUpdateNotification, :3064 getAvailableAppointmentSlotsFromWP, :3096 updateAppointmentInWP, :3127 getDuplicateAppStatusFromWP, :3161 getPathwaysIndvStatusFromWP)

  • [cp-ejbs] Novell/NetIQ eDirectory (LDAP citizen-account store) — LDAP (JNDI DirContext via FwLdapManager) (customer-portal/commonApp/gov/state/nextgen/access/business/rules/ABFailureBatchBO.java:985-1017 clenupEdirectory() (FwLdapManager.getUserAccounts / getUserAccountsPagiated / purgeAccount, DB cross-check via sql-cmb-1036); commonApp/gov/state/nextgen/access/business/rules/SecurityHelperBO.java (only other javax.naming.directory user in the surface))

Coverage and gaps

NOTE
the completeness critic ran after ROUND 1 (before the round-2 gap-fill). Its CPBATCH / batch-tier complaints were subsequently covered (see the per-partner sections); the JAX-RS inbound registry, the SMS and SMTP channels, the worker-portal QAS ProWeb second deployment, and the IQ/CV outbound stubs remain genuinely uncovered — candidates for a follow-up sweep.
  • BATCH/BI — EBT / benefit-issuance vendor file family (EBTAS + Xerox) — The single largest wholly-missed partner family. xsd-census explicitly wrote that EBTAS 'has NO XSD and therefore appears nowhere in my findings'; jms-mq saw only the internal BiBOPQ/BiCardHolderQ queue names; properties-config counted BI’s mappings but assigned no partner. Xerox (548 keyword hits, flagged by partner-keywords as never run down) resolves here as the EBT processor with two inbound daily feeds. P-EBT and disaster-SNAP (PSNAP) issuance are separate job families with their own weekly cadence. (worker-portal/BATCH/BI/src/META-INF/batch-jobs/ (32 jobs: BI-EBTEXP-DLY.xml, BI-EBTINACT-DLY.xml, BI-EBTASMRG-MLY.xml, BI-PEBT-DLY.xml, BI-PSNAP-WLY.xml, BI-TANF-MLY.xml, BI-FSTANF-DLY.xml …); worker-portal/BATCH/BI/src/resource-mapping/ (12 layouts: DailyEbtasBcodeRecord.xml, DailyEbtasInactiveRecord.xml, EbtasMergeRecord.xml, ExpungementDailyRecord.xml, FoodStampMonthlyRecord.xml, TanfMonthlyRecord.xml …); worker-portal/BATCH/IN/src/resource-mapping/xerox-rcv-dly-mapping.xml and xerox-split-rcv-dly-mapping.xml; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ebtas/)

  • ~44 BATCH/IN partner packages that have ZERO WSDL and ZERO XSD in either repo — This is the structural blind spot of the whole sweep: both contract-census agents (wsdl-census, xsd-census) key off .wsdl/.xsd files, so a partner with only a BeanIO layout is invisible to them by construction. partner-keywords listed the directory names but recorded no direction/transport/format/cadence for them, and explicitly left koala/truven/informal/mchb/gar/cola/dms unresolved. 226 IN batch jobs and 91 IN BeanIO mappings exist; only a fraction map to any inventoried finding. (I intersected the 68 entries of worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/ against every .wsdl/.xsd filename in the tree: 44 non-infrastructure packages have no contract file at all — avs beers bendex bor cola decal ded dms doe ebtas ertpl experian ffm gammis gar gdol gvra informal irs koala lexnexresponse liheap lis lnreq maxstar mchb mktrig ndnh newhire paris pckcert pcktpl peoplesoft peoplesoftap pthtpl sdx shbp smsoptinoptout spop stats sves tcsg truven xerox. Corroborating jobs: worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-SNIRS-MLY,IN-RCAVS-DLY,IN-SNAVS-DLY,IN-RCLIS-DLY,IN-RCBOR-QLY,IN-SNBOR-QLY,IN-RCTCSG-DLY,IN-SNDOE-MLY,IN-SNGAR-DLY,IN-SNDMS-DLY,IN-RCMCHB-DLY,IN-COLAUI-ANL,IN-RCVSMS-DLY}.xml)

  • State of Georgia PeopleSoft financials / Accounts Payable — A money-movement interface named by NO agent in any of the six summaries (partner-keywords' package list mentions the directory names but nothing else in the catalog references PeopleSoft). For canopy this is the disbursement/AP boundary — arguably the highest-consequence interface to mock wrong. (worker-portal/BATCH/IN/src/resource-mapping/peoplesoft-snd-dly-mapping.xml, peoplesoftap-snd-mly-mapping.xml, peoplesoftpna-snd-mly-mapping.xml; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/peoplesoft/ and …​/peoplesoftap/)

  • EMPI / MDM master-person-index database (direct Oracle JDBC) + Informatica PowerCenter ETL — The critic checklist item 'database links or staging-table integrations' resolves HERE. No Oracle DB LINK exists (I grepped for 'database link|dblink|@…world' across all .sql/.java/.xml/.properties/.ksh — zero hits), but this direct cross-system JDBC connection to the MDM/EMPI database is functionally the same thing and no agent found it. Two whole transports absent from the catalog: Informatica ETL, and ssh-driven remote job invocation. The catalog models EMPI only as a webMethods SOAP partner (GAIES_EMPIWsProvider…), which is one of at least three EMPI paths. (worker-portal/BATCH/CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/DAO/EmpiDBConnection.java:26-38 (builds jdbc:oracle:thin:@//MDM_DB_HOST:MDM_DB_PORT/MDM_DB_NAME); worker-portal/BATCH/CV_INFORM/scripts/CV-RUNWF-COR.ksh:44 and rprunworkflows/cvrunworkflows.ksh (INFA_HOME=/apps/data/Informatica/9.6.1/server); worker-portal/BATCH/RP/scripts/RP-RUNWF-COR.ksh:44; worker-portal/BATCH/RP/src/META-INF/batch-jobs/RP-INFOR-DLY.xml)

  • RP module — reporting / BI data-warehouse extract pipeline (report extracts leaving the transactional system) — Zero coverage in the sweep — no agent opened the RP module or BATCH/RP. This is a whole star-schema (STG → DIM → FACT → ARCHIVE) load into a separate reporting database, i.e. FTI-bearing data crossing a system boundary. Pentaho Data Integration is a third undocumented ETL tool alongside Informatica. partner-keywords noted '108 .rpt / 13 .rptdesign report definitions … were not read' but did not classify them as an egress surface. (worker-portal/BATCH/RP/src/META-INF/batch-jobs/ (RP-S1INIT-DLY, RP-S2STGDIMS-DLY, RP-S3STGAPP-DLY, RP-S4STGAPP-DLY, RP-S5BIDIM-DLY, RP-S6BIFACT-DLY, RP-S6BIAGGT-DLY, RP-S7BIARCHIVE-MLY, RP-STORERPDB-DLY, RP-STRAVSRPT-MLY, RP-STRPCSRPT-DLY, RP-STRQCSRPT-DLY); worker-portal/RP/script/ (66 ksh, e.g. RP-SN-025-DLY.ksh, RP-CA-015-QLY.ksh); worker-portal/RP/template/ (108 BIRT report definitions); worker-portal/RP/transformation/*.ktr; worker-portal/BATCH/RP/remote-scripts/RP-archive.ksh (FTI flag as arg 2, reads PC_TO_RC_<date>.csv, tars and archives, mailx on error))

  • Correspondence/notice file egress to the print file server (plain scp/sftp, outside webMethods MFT) — Directly contradicts topology’s cross-cutting claim (2)/(1) that 'BATCH = SFTP DROP + POLL' and that every transfer is an MFT scheduled action — this one is an outbound push initiated by the batch server itself. SECURITY, PATH ONLY: [withheld] lines 23-60 hardcode internal 10.x IP addresses, service account names and a named individual’s email, and pass a password positionally into [withheld]; I read no credential values. BATCH/CM/scripts/[withheld]:47,66,70 similarly mailx-alerts a hardcoded address. ([secret-bearing path withheld]:23-57,80 (per-environment host/user/destDir selection, then delegates) and [secret-bearing path withheld]:59,65-76 (envelope-file existence check, index log, scp $f $user@$host:$destDir))

  • customer-portal/services — 18 inbound SOAP endpoints (an entire uninventoried provider module) — wsdl-census scoped itself to worker-portal’s 92 and said 40 customer-portal WSDLs were out of surface; cp-bridges covered bridgesClient’s 22 — these 18 are the exact remainder and nobody opened them. Two payoffs: DocHistoryUpdateService.wsdl here CLOSES wsdl-census’s open cross-repo direction question, and GAIES_SSA_wsProvider_processSSA_SOLQ_Port_1.wsdl means raw SSA SOLQ record images are reachable from the public-facing applicant portal tier — a classification fact the catalog does not contain. (customer-portal/services/WebContent/WEB-INF/wsdl/ — AccountLinkService.wsdl, ChangeNotificationService.wsdl, CPAccSearchService.wsdl, CPDisasterSearchService.wsdl, CreateUpdateAccountServiceCP.wsdl, CustPortAppService.wsdl, DISLogOnService.wsdl, DocHistoryUpdateService.wsdl, DSNAPVerificationService.wsdl, EmailVerificationService.wsdl, GAIES_SSA_wsProvider_processSSA_SOLQ_Port_1.wsdl, IVREmailVerificationService.wsdl, IVRPhoneVerificationService.wsdl, NoticeLinkService.wsdl, PasswordResetService.wsdl, PasswordUpdateService.wsdl, PathwaysSearchServices.wsdl, PhoneVerificationService.wsdl; impls under customer-portal/services/src/gov/state/nextgen/access/services/)

  • IVR / telephony vendor — DB staging-table integration plus 10 program-specific SOAP services — wsdl-census recorded 'an IVR vendor (9 services)' with no identity and separately flagged 'sun-jaxws.xml registers IPPCapsLookupService … with NO WSDL — a missing contract'. IVRCapsIppLookupStg is the missing half: the IVR platform is fed through a staging table, not a contract. No vendor name appears anywhere in the tree (I grepped Avaya/Genesys/Twilio/Nuance/Cisco/Convergys/voiceXML — zero hits), so the vendor is genuinely unidentifiable from source; the interface shape is not. (worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/ivr/{auth,ccm,cn,fsm,ipp,mcm,p4hb,pck,pth,tanf}/ (10 packages, e.g. auth/IvrAuthService.java + IvrAuthSOAPImpl.java); worker-portal/IEApp_Properties/common/fast4jCustomDAOsList.properties:1630 (InRcvIvr) and :1632 (IVRCapsIppLookupStg); customer-portal/services/WebContent/WEB-INF/wsdl/IVRPhoneVerificationService.wsdl and IVREmailVerificationService.wsdl)

  • Staging tables (*_STG) as a first-class integration transport — 44 registered, unmodelled by the catalog — partner-keywords found the SQL*Loader .ctl files and the record widths but treated staging tables as an implementation detail of the file interface. For deterministic mocks they are the actual seam: several partners (IVR/CAPS-IPP, GVRA ROI, copay) exchange data ONLY through a staging table, with no file and no contract artifact. Recommend canopy model 'staging table' as a transport alongside SOAP/file/MQ. (worker-portal/IEApp_Properties/common/fast4jCustomDAOsList.properties — 44 *Stg DAO registrations, e.g. :1083 InSendAccuLnReqStg, :1345 InAvsFiLocStg, :1543 InSmsOptStg, :1632 IVRCapsIppLookupStg; also InBendexStg, InSdxStg, InSvesStg, InIrsSndStg, InNacBlkStg, InNdnhRcvStg, InParisStg, InParisFedStg, InDolSndStg, InDolWagesInfoStg, InGammisClientSndStg, InGammisQaSndStg, InDoeSndStg, InSendPcsStg, InMaxstarCldrWkStg, InEbtasInactStg, InDisSendNoticetypeStg, EdGvraRoiStg, InRcvCopayStg, InRcvDocInfoStg; plus worker-portal/BATCH/ED/sql/MU_GVRA_ROI_STG.sql)

  • Google reCAPTCHA Enterprise — Named by no agent. It is a hard external dependency on the applicant login / account-creation / case-link / phone-OTP paths, so canopy’s portal test doubles need a reCAPTCHA stub or those flows cannot be exercised deterministically. Also implies a phone-OTP flow exists that the catalog does not describe. (customer-portal/framework/gov/state/nextgen/framework/security/GoogleRecaptcha.java:27-44 (CAPTCHA_ENABLED / CAPTCHA_PROJECT_ID / CAPTCHA_URL config keys; SCORE field; actions validate_captcha_login, validate_captcha_create_account, case_link_continue, case_link_verify, case_link_phone_otp_verify))

  • Okta / SAML 2.0 identity federation + Novell eDirectory LDAP (with a partner-account branch) — properties-config mentioned 'SAML/Okta, LDAP' only as property-block names in a list of what the online profile contains; no finding treats the IdP as an interface. It is one — an external real-time dependency with its own contract (assertion attributes, NameID format, session semantics) that canopy must mock to run any worker-portal-equivalent flow. The LDAP partner base location also implies external-organisation user provisioning that nothing in the catalog covers. (worker-portal/FW/ejbModule/gov/state/nextgen/framework/security/saml/util/SAMLConstants.java and …​/security/onelogin/saml/{SamlResponse.java,model/SamlResponseStatus.java,exception/SAMLException.java}; worker-portal/workerportalsharedlib/opensaml-2.5.3.jar and opensaml-2.6.4.jar; Okta config held in a DB table — worker-portal/Common/src/gov/state/nextgen/common/dao/custom/SeOktaLoginPropertiesDAO.java and DA/src/gov/state/nextgen/common/cargo/custom/SeOktaLoginPropertiesCargo.java; LDAP keys incl. LDAP_ACCT_PARTNER_BASE_LOCTN / LDAP_PARTNER_SEARCH_BASE / LDAP_USR_CRTN_LOCKEDBYINTRUDER (Novell eDirectory attributes) in worker-portal/IEApp_Properties/)

  • LexisNexis Accurint (identity-proofing / person-and-asset search) — partner-keywords listed the lexnexresponse and lnreq packages and stated explicitly that their 'partner identity/transport was not determined'. The Accu(rint) prefix on the staging DAO resolves it. This is a second identity-proofing vendor alongside the Experian Precise ID path cp-bridges found in customer-portal, and the two are in different repos/tiers — canopy needs both. (worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/lexnexresponse/{bo,chunk/{partition,processor,reader,reload,writer},util}/ and …​/in/batch/lnreq/; staging table registration worker-portal/IEApp_Properties/common/fast4jCustomDAOsList.properties:1083 (InSendAccuLnReqStg — 'Send Accurint LexisNexis Request'); also referenced from worker-portal/BATCH/ED/src/gov/state/nextgen/ed/batch/{batchlet,bo/impl,util}/)

  • GVRA — Georgia Vocational Rehabilitation Agency — A complete bidirectional partner that appears in NO finding. It fell through every net: no WSDL file (invisible to wsdl-census), no XSD (invisible to xsd-census), not JMS, and properties-config saw only its PGP keyring block. It is the clearest single proof that the catalog’s coverage model has a hole for 'SOAP partner whose WSDL was not checked in'. (SOAP: worker-portal/IN/ejbModule/gov/state/nextgen/ejb/business/services/gvra/{createReferral,participantSearch,referralStatusCheck}/IESGVRAWsProviders*Stub.java and worker-portal/IN/common/src/gov/state/nextgen/in/bo/INGVRAResponseBO.java; batch: worker-portal/BATCH/IN/src/META-INF/batch-jobs/{IN-SNDGVRA-DLY,IN-RCVGVRAREF-DLY,IN-GVRAREFCR-DLY,IN-GVRAREFST-DLY,IN-GVRAPARTSR-DLY,IN-RCGVRAPART-DLY}.xml and worker-portal/BATCH/ED/src/META-INF/batch-jobs/ED-GVRAROIED051-DLY.xml; layout worker-portal/BATCH/IN/src/resource-mapping/gvra-snd-dly-mapping.xml; loader worker-portal/BATCH/IN/sql-loader-control/InRcGVRARefDlyCtl.ctl; staging worker-portal/BATCH/ED/sql/MU_GVRA_ROI_STG.sql)

  • Inbound JAX-RS REST API in worker-portal (outside the sun-jaxws.xml registry) — Directly undercuts wsdl-census’s load-bearing methodology claim that sun-jaxws.xml is 'the authoritative server-side registry' for what Gateway exposes. There is a second, unrelated inbound registry (JAX-RS) that no agent enumerated. Anything registered there is an inbound partner surface the catalog says does not exist. (worker-portal/IN/common/src/gov/state/nextgen/in/services/RestApplication.java:6 (extends javax.ws.rs.core.Application); InTextHistoryService.java:18,24-26 (@Path("/text-history"), @POST /insert, produces JSON); InTextConfigService.java; InTriggerTableService.java; SecurityInterceptor.java)

  • SMS / text-notification gateway — wsdl-census explicitly listed 'SMS/text-notification' among REST surfaces 'that a WSDL-only inventory structurally misses and should be assigned to someone' — nobody was assigned. It spans both repos and both tiers, has an inbound opt-out leg (a compliance-relevant contract), and AWS Pinpoint appears in the batch profile as a possible second channel. (worker-portal/Common/src/gov/state/nextgen/common/util/SendSmsUtil.java; worker-portal/BATCH/SS/src/gov/state/nextgen/cp/batch/util/SMSApi.java; worker-portal/BATCH/DC/src/gov/state/nextgen/dc/batch/bo/impl/DcSendSmsBOImpl.java; customer-portal/commonApp/gov/state/nextgen/access/services/sms/api/{SMSApi.java,util/SendSmsUtil.java}; worker-portal/BATCH/IN/src/META-INF/batch-jobs/IN-RCVSMS-DLY.xml; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/smsoptinoptout/; staging worker-portal/IEApp_Properties/common/fast4jCustomDAOsList.properties:1543 (InSmsOptStg))

  • Outbound webMethods partner stubs living OUTSIDE IN/ (module-scoped sweeps missed them) — The sweep implicitly assumed all outbound partner clients live under IN/ejbModule. They do not. Notably the SilverPop GetBouncedEmailList stub that cp-bridges recorded as a DORMANT contract in customer-portal has a live batch consumer here (BATCH/CO), so that dormancy verdict is wrong at the estate level. IQ’s PCS GetFinancialSummary is a different operation from the PCS interface wsdl-census catalogued. (worker-portal/IQ/ejbModule/gov/state/nextgen/ejb/business/services/pcs/GAIES_PCSWsProviderGetFinancialSummary_WSDStub.java + IQPcsBO.java; worker-portal/CV/ejbModule/gov/state/nextgen/ejb/business/services/csi/GAIES_EMPIWsProviderDetailSearchClientServiceStub.java; worker-portal/IEWebApp/src/gov/state/nextgen/business/ejb/services/st/dol/UIBenefitWageInquiryDOL.java; worker-portal/BATCH/CO/src/gov/state/nextgen/co/batch/services/silverpop/GAIES_SilverPopWsProviderGetBouncedEmailListStub.java)

  • Experian QAS ProWeb address standardization — worker-portal instance (second, uncatalogued deployment) — cp-bridges found QAS ProWeb only in customer-portal/bridgesClient (15 ops). The worker-portal FW module carries its own client with a LARGER operation set — bulk search and DPV lock/unlock are not in the customer-portal list. The FW module was opened by no agent. This is the address-standardization checklist item: it exists, in two places, and only one was catalogued. (worker-portal/FW/ejbModule/gov/state/nextgen/ejb/framework/business/services/address/validation/ — ProWebStub.java, ProWebCallbackHandler.java, QABulkSearch.java, QASearch.java, QARefine.java, QAGetDPVStatus.java, QAUnlockDPV.java, DPVStatusType.java, QAGetLayouts.java, QAGetLicenseInfo.java (+46 more))

  • customer-portal/CPBATCH — applicant-portal batch tier — cp-bridges named CPBATCH as 'the likely home of scheduled/batch cadences' and did not open it; no other agent covered customer-portal at all. CP-WPUPLD-DLY / CP-WPINT-DLY are the portal↔worker-portal document and interface jobs — the batch half of the SelfServiceIntegration relationship the catalog describes only synchronously. CPeDirClnCtl.ctl is an eDirectory (LDAP) cleanup loader, tying the LDAP surface to a batch job. (customer-portal/CPBATCH/CP/src/META-INF/batch-jobs/ (CP-CLN-DLY, CP-DELINK-DLY, CP-EDIRCLN-ONR, CP-EXCPCLN-MLY, CP-PDF-DLY, CP-PENDINGPDF-ONR, CP-PURACC-DLY, CP-PURAPP-DLY, CP-RMBPUR-DLY, CP-RMCPUR-DLY, CP-TNUMINS-DLY, CP-WPDUPLD-DLY, CP-WPINT-DLY); customer-portal/CPBATCH/CP/sql-loader-control/CPeDirClnCtl.ctl; customer-portal/CPBATCH/FW/src/gov/state/nextgen/framework/batch/bo/impl/NGBatchNotificationBOImpl.java (javax.mail); customer-portal/CPBATCH/CP/scripts/CP-BATCH-RUN.ksh)

  • SMTP / mail-notification channel (operational and applicant-facing), and mailx-based batch alerting — The catalog covers the SilverPop marketing-email vendor and Adobe AEM central print, but not the plain SMTP relay, which is a distinct external dependency and the fallback path for benefit-issuance and GAMMIS notifications. Every batch job also declares NGBatchJobMailNotificationListener, so SMTP is a dependency of the batch framework itself, not just of specific interfaces. (worker-portal/FW/ejbModule/gov/state/nextgen/framework/util/FwMail.java; worker-portal/BATCH/FW/src/gov/state/nextgen/framework/batch/{bo/impl/NGBatchNotificationBOImpl.java,facade/EmailNotificationFacade.java,util/batchlet/EmailNotificationBatchlet.java}; worker-portal/BATCH/BI/src/gov/state/nextgen/bi/batch/bo/impl/EBTEmailNotificationBOImpl.java + BATCH/BI/src/resource-mapping/EBTEmailTemplate.vm; worker-portal/BATCH/IN/src/gov/state/nextgen/in/batch/gammis/bo/impl/GammisEmailNotificationBOImpl.java; worker-portal/CO/common/src/gov/state/nextgen/co/util/EmailUtil.java; customer-portal/framework/gov/state/nextgen/framework/{management/email/FwEmailManager.java,security/utility/Mailer.java})

Sweep self-reported not-covered notes:

  • wsdl-census: did not infer direction from soap:address alone.

  • jms-mq: DID NOT GET TO - customer-portal entirely (not my surface).

  • partner-keywords: did NOT read or extract — worker-portal/IN/webMethods/"[secret-bearing path withheld]" (withheld: credential-bearing vendor export — see the borderline list), [secret-bearing path withheld].properties (environment config), and [secret-bearing path withheld] (a named individual’s email address); [secret-bearing path withheld] also contains operator usernames.

  • properties-config: DID NOT GET TO: (a) the ~1,611 UI property files under IEWebApp/WebContent/properties and …​/properties/dynalist — sampled and confirmed to be Struts form-bean field bindings and dropdown definitions, NOT interface config, so not enumerated; (b) field-by-field decoding of the 110 BeanIO layouts (I captured counts and widths, not per-field names/offsets — say the word and I can emit full layouts for named partners); (c) Java source, .wsdl/.xsd artifact files outside the config trees, and the 295-file interfaceSchema JAXB tree (only its package structure was noted: cargo, mt, solq); (d) SQL DDL and the sql/ trees; (e) .ksh beyond the four BATCH/IN scripts; (f) wpl_build_comp build props and sonar-project.properties (build-only, no interface content); (g) the ~500 non-IN batch job XMLs in CO/ED/SF/CV_INFORM were listed and scanned for mappings but not individually read; (h) the entire customer-portal repo (another agent’s surface); (i) partners visible only as Java packages with no config or mapping evidence (truven, gar, ertpl, pckcert, experian, stats) — their transport/format needs a Java-source pass.

  • topology: DID NOT GET TO (declared gaps): (a) per-action source/target directory paths and per-file transfer filters for the two largest exports (ActiveTransfer_Sprint3_v1, 53 actions; [secret-bearing path withheld], 42 actions) — I captured names, schedules, task chains and globs but not the resolved directory literals; (b) GAIES_Batch package internals (publishBatchLog, publishBatchLogWithNotify) — the package is explicitly dropped per Deployment_Instructions.txt and no zip for it exists in the corpus, so batch-log/notify payload shape is unknown; (c) record-level layouts — I did not open worker-portal/interfaceSchema (JAXB "cargo" generated classes = the fixed-width record definitions), worker-portal/BATCH, or IN/xsd/IESWicSchema.xsd / IESResponseWICSchema.xsd; (d) IEApp_Properties (JMS queue names, endpoint URLs, connection factories) — not read, so JMS topology is inferred from compiled class names only; (e) the JmsRecieveWebApp has NO Java source in the repo (compiled .class only), so its queue→SQL→SOAP orchestration is inferred from class/method names, not read; (f) the IES_FDSH webMethods package that implements VerifySSA is referenced by WSDL but ABSENT from the zip corpus — its internal orchestration is unknown; (g) the ENTIRE customer-portal repo (bridgesClient, CPBATCH, services, afbEJB, rmcEJB, CorticonEJB) was outside my assigned surface and is untouched; (h) no X12 artifacts were found in my surface — if Gateway does X12 (834/270-271) it is not in worker-portal/IN.

  • in-webmethods: DID NOT GET TO / deliberately skipped: (a) 61 of the 79 zips — they are older dated versions of the 18 package families I did open (I read the Full_v1 or newest-dated member of each family); a full version-diff was out of budget; (b) flow.xml / node.ndf bodies — these are vendor implementation code and were intentionally not read, so per-field request/response mappings and any transformation logic are not captured, only the service and document-type names; (c) per-service docType enumeration beyond one representative package (SAVE, EMPI, AVS shown); (d) GAIES_Common_TestResults.docx (binary, not opened); (e) fixed-width record layouts for every batch interface — no layout/copybook files exist anywhere in this subsurface, only filename patterns, so field-level batch mocks will need a different source (likely worker-portal/IN/ejbModule or the customer-portal repo); (f) X12 — no X12 artifacts found on this surface at all; (g) MQ/JMS — no JMS queues found; the only soapjms reference is an unused namespace declaration in ShinesCCBatch.wsdl.

  • batch-in-partners-a-l: DID NOT GET TO / open questions: (1) gammis is 265 files — inventoried at mapping/stream level only; the 154-field ACC change record and the position-less gammis-tpl-send add/change records were not field-expanded.

  • batch-in-partners-m-z: DID NOT GET TO / HONEST GAPS — (1) Concrete on-disk FILE NAMES are not derivable from this source: every job takes filePath as a runtime jobParameter and only checks existence (FileExistenceCheckPatternMatch) / archives (NGBatchFileArchiveBatchlet); the only hard-coded naming facts are the '.csv' rename on MAXSTAR send and the '.gpg' suffix on TPL.

  • batch-small-a-i: Did not get to Deployment/scheduler config (the scripts/ dirs and build.properties) that would resolve the actual SFTP destinations and cadences for ANTS, PIEA, Case extract, and GAMMIS; the CO/sql-loader-control/ control-file layouts; and per-field detail beyond one representative layout per family.

  • batch-small-j-z: DID NOT GET TO: no WSDL/XSD artifacts are checked into this surface (only Axis-generated Java), so the BIP contract was reconstructed from stubs rather than schema; the actual property FILES holding rp./sftp./pc_to_rc.* values are not in BATCH/ (only the key names are), so real folder paths, hosts, and the pc_to_rc filename suffix remain unknown; RP/remote-scripts/{sit,str,trn} env variants were not opened (dev/ was, and holds only REPORTS_HOME and SOURCE); I did not trace RpStoreReportWriter/RpQueueBatchWriter internals or the RP-S1…S7 Informatica workflows' own logic (they live outside this repo, in the Informatica repository); no fixed-width, X12, or MQ/JMS interface exists anywhere in the eight assigned subsurfaces — that was checked by targeted grep and came back empty.

  • cp-batch: DID NOT GET TO (honest gaps): (a) 92 jars were NOT decompiled — EMPIWebService.jar, CorrespondenceESBClient.jar, payeeWSClient.jar, scheduleServices.jar, interfaceSchema.jar, ecbldap.jar and rsaexternal.jar each almost certainly contain the WSDL/XSD contracts for their partner, and interfaceSchema.jar is likely the single richest remaining artifact on this surface.

  • cp-ejbs: Did not get to: the per-operation XSD element-level field lists inside the 19 published WSDLs (I catalogued names, namespaces, and message-type pairs, not full schemas — that is the obvious next pass for anyone actually generating the mocks); the Truv and SteadyIQ HTTP invoker classes and their retry/pagination semantics (they live in the sibling access/ project, outside this surface); the full bridgesClient CallWebService operation catalog beyond the ~33 ops reachable from commonApp; and CPBATCH, which is where any genuine scheduled/nightly file feeds would live — nothing in my three subsurfaces evidenced a fixed-width, X12, or FTP partner feed, so if those exist they are in CPBATCH or the worker-portal repo.

Edit this page · default