Georgia Gateway External Partner Interface Catalog
On this page
- Master table
- Per-partner detail
- SSA — SOLQ/SVES (state online query)
- SSA — NUMIDENT / EVS / other
- GDOL — UI benefits & quarterly wages
- DECAL / CAPS (childcare)
- EBT — FIS / Conduent / Xerox (EBTAS)
- SHINES (GA SACWIS child welfare)
- DIS / Oracle WebCenter (document imaging)
- FFM / marketplace account transfer (ATX)
- GAMMIS / MMIS (Medicaid claims & enrollment)
- Experian — identity / credit / QAS address
- TPL / ESI (third-party liability insurers)
- AVS (asset verification: Accuity/HMS IntegriMatch)
- IRS — BEER / FTI
- Adobe LiveCycle / central print vendor
- Equifax — The Work Number (TALX)
- PARIS (interstate match)
- STARS / $TARS (child support enforcement)
- US Treasury — TOP / GA DOR DSO (debt offset)
- USCIS SAVE / VLP (immigration status)
- EMPI (GA enterprise master person index)
- GA DDS (driver services identity match)
- ImageNow / Perceptive ECM (document imaging)
- SSA — BENDEX (Title II benefits)
- FNS — eDRS (disqualified recipients)
- FNS — reporting / other
- GA Vital Records (GAVERS)
- MAXSTAR / MAXIMUS (appeals vendor)
- OCSE — NDNH (national new hire)
- PeopleSoft (state financials)
- SSA — SDX (SSI data exchange)
- State WIC system
- TCSG / Board of Regents (Pathways education)
- GA DOE — school meals direct certification
- GVRA (vocational rehabilitation)
- IVR / telephony vendor
- LIHEAP (energy assistance)
- SOLVE (DHS customer contact)
- SUCCESS (legacy eligibility system)
- ACF — TANF federal reporting
- D-SNAP (disaster SNAP channel)
- GA DOC (prisoner match)
- LexisNexis — identity / assets
- SHBP (state health benefit plan)
- GA New Hire registry
- NAC (National Accuracy Clearinghouse)
- PCS / PeachCare for Kids (CHIP)
- SteadyIQ (gig income verification)
- Truv (income/employment verification)
- CMO (care management organizations)
- DCSS — child support services
- CPP (TANF work-participation vendor portal)
- MCHB (maternal & child health)
- NCOA (postal address change)
- VCL
- ANTS (notice tracking feed)
- Data Broker (income aggregator)
- HMS — Pathways
- ODDC
- OPI (program integrity)
- Appendix A — internal / architecture surfaces
- Appendix B — uncategorized findings
- Coverage and gaps
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 |
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 |
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 ( |
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 |
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 |
WSDL-generated Axis2 ADB classes over SSA’s fixed-field SOLQ record layout. Request |
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 ( |
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 ( |
worker-portal/IN/webMethods/IES_SSA_Inbound:194 (SSA_IES_INBOUND_DAILY_DLY_VERIF, active=true, filter |
outbound |
raw HTTP POST via |
XML request body; SOLQ response parsed by record type |
real-time, worker-initiated (synchronous request/reply) |
worker-portal/IN/webMethods/GAIES_SSA_Full_v1.zip → ns/GAIES_SSA/services/processSSA_SOLQ/flow.xml: |
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 ( |
flat text file, fixed name |
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 |
bidirectional |
batch file (CSV in, CSV out) |
CSV BeanIO — |
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 |
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 |
-
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 theexecuteErrorTask=trueflag 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_cdfixed="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 (only200proceeds; anything else falls to the fault path), then on the SOLQ record typet1-rectyp∈ {1,2,3,4} with a$defaultarm. 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.
qualQtrPatternCdis 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.txtflow 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
svesbatch 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 ( |
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 ( |
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 ( |
[secret-bearing path withheld] ( |
bidirectional |
batch file |
fixed-width |
daily ( |
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 |
WSDL + NIEM 2.0 XSD (namespaces |
real-time |
worker-portal/IEWebApp/WebContent/wsdl/FDSHServiceIntegration/SSACompositePort_1.wsdl:2 (targetNamespace + CMS DSH namespaces), :622-623 (portType |
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 |
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 |
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 |
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 |
-
GAP: the implementing webMethods package
IES_FDSHis 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\bmarker returned no independent partner (its hits are NIEMhixschema enumerations plus a plotly.js false positive). Also present: anaccountTransfer4IES.wsdl(see Account Transfer finding) and NIEMhix-core/hix-ee/hix-pmschemas 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
BEERhits — the marker is low-frequency but the interface is real (dedicatedbeersbatch 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
svesbatch 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 ( |
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 ( |
WSDL+XSD for the real-time path (operations |
real-time for inquiry; weekly UI benefit file ( |
worker-portal/IEWebApp/WebContent/wsdl/DOLServiceIntegration/UIBenefitsWagesInquiryDOL.wsdl:263-270,299 (portType |
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 |
WSDL + XSD, service |
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 |
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 |
-
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 byDOL_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.dolvsejb.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\bhits. 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
gdolpackage 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 |
WSDL + 8 XSDs. portType |
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 |
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 |
-
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
CAPSmarker 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.searchForAVendorimplies 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/interfaceSchemais 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
capsservice. -
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 |
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 |
WSDL + inline XSD. portType |
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 |
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 |
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 ( |
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") |
-
17 actions — the largest single-partner action count after SSA. Money-moving interface:
IES_EBTAS_OUTBOUND_DAILY_DLY_REQUESTand the monthly SNAP/TANF requests are issuance instructions;EXPUNGEandINACTIVE_ACCOUNTScome 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 strayTEST_IES_EBTAS_OUTBOUNDaction left in the production Sprint3 export. -
CASE-SENSITIVITY DEFECT WORTH REPRODUCING IN A MOCK’S TEST: the find filter is
Xeroxbut the exclude filter isxerox— 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 theIES/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*Vallayout (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
ConduentandFISreturn 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 |
daily inbound nutritional assessment ( |
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 |
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 |
-
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
Actionenumerates 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\bhits. 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 |
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 |
WSDL-generated JAXB. portType |
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 |
outbound |
SOAP, direct service |
WSDL + XSD. portType |
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 ( |
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 ( |
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) |
-
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.pdfplus locale variantsFGG551_EL.pdf/FGG551_ES.pdf/FGG551_SL.pdf, and mail-assembly assetsCoverSheet.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+CheckInUniversalis 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: |
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 |
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 |
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 ( |
daily |
worker-portal/BATCH/DC/src/gov/state/nextgen/dc/batch/batchlet/DcNoTouchDuplicateFFMBatchlet.java:16,24 (selects |
-
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.
constraintandunconstrainedcopies differ (hix-ee 191 diff-lines, niem-core 140) — the constraint set is the validating one; mocks should validate againstconstraint. -
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
transferAccountcarrying a whole application payload. Deployed as a JAX-WS endpoint in theInterfacesEJB 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 (opquickDenyFfmApplication). -
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
accountTransferhits. This is the Medicaid↔Marketplace account transfer. ThehixNIEM domain also explains most of the\bHUB\bmarker 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 |
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 |
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 |
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") |
-
HIGHEST-VOLUME BIDIRECTIONAL BATCH PARTNER (10 distinct actions). Notable: the inbound
MEDICAID_ID_EXTRACTis 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 markersX12,834,270,271,999all resolve to ZERO real EDI usage. -
140
\bMMIS\bhits vs 25,137 for GAMMIS. The bareMMISmarker is largely legacy/generic naming for the same GAMMIS interface — do not model it as a separate partner. NoDXC,HP ES,ConduentorXEROX-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 |
WSDL+XSD — service |
real-time (applicant identity proofing at account creation) |
customer-portal/bridgesClient/META-INF/IDProofing/IDProofing.wsdl:21,38 (operation |
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 |
WSDL + XSD. Operation |
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 |
outbound |
SOAP via webMethods |
WSDL + XSD, QAS namespace |
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 |
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: |
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/) |
-
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 the200case 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
experianbatch 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/OpInitialsare 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 |
monthly carrier extract ( |
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 |
WSDL + XSD. portType |
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 |
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 |
-
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.
-
disDocMasterSeqlinks 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.
-
disDocMasterSeqlinks 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 |
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") |
-
DPPA header (11, on BOTH request flavours): tranNum/transNum, tranType/transType, reqFirstName, reqMiddleName, reqLastName, reqSuffix, reqOrgName, reqDriverLicense, reqLoginName, reqLoginDesc, reasonCode.
reasonCodeis 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)publishErroris 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-INVOKEDreRequest*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 — |
monthly ( |
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) |
-
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,documentTypeandassistanceCodesare the IRS code families a mock must model. NOTE: the class name is misspellednameContro1/nameContro2in 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\bhits. 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 ( |
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 |
WSDL + XSD. Adobe IDP namespace |
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) |
-
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_FILEenvelopes,_CO_FILEcorrespondence) — both active=true.centralPrintFileUploadis a provider (inbound) op, i.e. the print vendor uploads back into IES.onlineCorrespondencePreviewNoMarkis 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_processesendpoints. 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
noticesservice. The suppress/unsuppress pair is a print-hold control worth mocking explicitly. 'NoMark' = preview without watermark. -
Directly relevant to canopy’s
noticesservice. 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 |
WSDL+XSD, operations |
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 |
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 |
WSDL-generated JAXB over OFX (Open Financial Exchange) message shapes. Operations: |
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; |
outbound |
raw HTTPS POST via |
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: |
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 |
-
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) vsrequestEmployerHistory(history). Same two-level dispatch as SOLQ: HTTP status200gate, 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 Numberhits; TALX only 5 hits (legacy vendor name surviving in a DAO method name — the markerTALXis 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 ( |
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, |
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) |
-
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_REQUESTis 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=falsethroughout) — 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 |
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 |
daily (in/out, receive, send); on-request variants |
worker-portal/BATCH/CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/batchlet/StarsOutboundFileBatchlet.java:107 ( |
-
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 |
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 |
fixed-width, BeanIO 2012/03 mapping XML ( |
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 |
bidirectional |
batch file (SFTP) |
fixed-width BeanIO; 6 distinct streams in one mapping file, single record class |
daily (tax + notification), weekly (send, merge) |
worker-portal/BATCH/BV/src/resource-mapping/DSOGenericTaxIntercept.xml:5 ( |
n/a |
n/a |
n/a |
n/a |
worker-portal/BATCH/scripts — contains exactly one file: scripts/XML_COMP/setClasspath.ksh |
-
Every TOP job runs a 3-gate precondition chain before processing:
FileExistenceCheckPatternMatch→NGSingleFileExistenceCheck→ (merge/archive), each with an override flag — a mock must reproduce the gate semantics, not just the payload. Critical dual-source fact:*SPT/*MRGvariants take BOTH aniesFilePathand asuccessFilePathand merge them into one outbound TOP file — Gateway (IES) and the legacy SUCCESS system are both debt sources feeding one certification stream.agencyIdliteral "28" +agencySiteIdliteral "GA" are the constant agency identifiers on every detail record. -
RICHEST MULTI-FILE RESPONSE FAN-OUT IN THE INVENTORY: one outbound
ADDRESS_MATCHrequest 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-pathUNPROCESSABLEfile. No ack file ties any of them to the request. -
Same IES-vs-SUCCESS dual-source split as TOP: the
Spt/Successstream 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 |
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 |
worker-portal/IN/Providers WSDL/GAIES_SAVE_wsProvider_SAVE_alienVerification_Port_1.wsdl:1587-1632 (portType |
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 |
WSDL-generated JAXB. 15 operations on |
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 |
bidirectional |
SOAP over HTTPS — WCF service consumed via webMethods wsConsumer; IES also exposes a 12-op provider facade |
WSDL + XSD (WCF |
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 |
outbound |
SOAP |
WSDL+XSD — webMethods IS wsConsumer |
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 |
-
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 withGetNextResolvedCase(queue-drain semantics: returns the next resolved case, or nothing) →RetrieveAdditResolution/RetrieveThirdResolutionto fetch the outcome →AckReceiptOfResolutionto 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).CpsVerifyConnectionis a liveness probe;SetUserPasswordimplies 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:*Resp34doc 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 + 330alienVerification. TheredisplayG845operation confirms the full 3-step (initial/additional/third) SAVE flow including Form G-845 paper fallback. This is the real lawful-presence interface — NOTVLP(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 |
WSDL + XSD across four MDM namespaces (webservice.client.mdm, message.client.mdm/xsd, bo.client.mdm/xsd, common.mdm/xsd). portType |
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 |
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 |
-
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.
mergeis the dangerous one (two IRNs collapse into one) and there is no callback telling IES that a merge happened out-of-band — instead the dailyIRN_ASSIGNMENT/IDALIAS/ALIASfiles 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
personsservice 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
personsservice.
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 |
WSDL+XSD, operation |
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 |
WSDL-generated. Operation |
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 |
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 |
-
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.
-
AuthenticateDriveris 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 |
bidirectional |
SOAP, service |
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 |
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 |
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 |
-
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
faultmessages in addition to input/output, so ImageNow mocks must be able to return typed SOAP faults, not just HTTP errors. Includes alicenseservice (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
metaDatatriple 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
ImageNowhits — 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 |
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 ( |
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 ( |
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 |
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 |
-
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.
ievsAgencySubCdon 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_FILEbut the filter isInRcvBenMlyDat(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 |
outbound (query + maintenance) with synchronous responses |
SOAP |
WSDL+XSD — wsConsumer |
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 |
-
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.wsdlis 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 ( |
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 |
-
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\bhits — the marker itself is weak because FNS reaches Gateway THROUGH eDRS, NAC, EBT/Xerox and WIC rather than as a named endpoint. The unopenedGAIES_FNS.zipwebMethods 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 |
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 |
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 |
-
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_ValidateRecordSearchshows 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.
sourceis 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 |
WSDL + XSD, two vendored copies (PCKPremium/ and PCSServiceIntegration/). portType |
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 ( |
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 |
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 |
-
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
customerManagementServicehas portAddress literallyREPLACE_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 ( |
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) |
-
Send request (14): submitterIdentifier, recordIdentifier, ssn, person name parts, passbackData, w4SameStateDataIndicator, qwSameStateDataIndicator, uiSameStateDataIndicator + fillers.
passbackDatais 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 misspellingQuaterlyin 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 ( |
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 |
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/ |
-
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 |
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 ( |
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, |
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) |
-
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 |
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 |
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 |
-
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
IESon an.asmxendpoint — 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/ |
-
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 misspellingQUATERLYin 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 |
-
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 ( |
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) |
-
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 |
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 |
-
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.
getIvrAuthorizationDetailsis 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 |
-
SECURITY-RELEVANT SHAPE: both request types carry
usernameandpasswordas 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 alsorecLiheapIndandapprovedForOrReceivingLIEAPappear 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 — |
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 |
WSDL + XSD. portType |
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 |
-
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) andBEER(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 ( |
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 |
daily; plus on-request (ONR) conversion runs |
worker-portal/BATCH/CV_INFORM/src/gov/state/nextgen/cvInformatica/batch/cargo/batchlet/OutboundFileMoveBatchlet.java:119-129 ( |
-
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_SPLITFILEshows 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-*-ONRone-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 ( |
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 |
-
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 |
-
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 ( |
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 |
-
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 |
SHBP monthly ( |
MFT events |
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 |
-
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) |
-
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/ |
-
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 |
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 |
-
CLEAN REQUEST→RESPONSE PAIR with an explicitly named response action (
…_MATCH_RESPONSE), monthly cadence, plus a real-timenacMatchop 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 |
-
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 |
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, |
inbound |
batch (staged app-user records) |
|
daily |
worker-portal/BATCH/DC/src/gov/state/nextgen/dc/batch/bo/DcSteadyiqBO.java:13,16,19 ( |
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) |
-
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
accessweb 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 ( |
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 |
-
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/ |
-
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 |
not discernible |
worker-portal/CO/xsd/IESFormXMLSchema.xsd:521 (element |
-
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 supporthits. 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 |
LDAP entries. Interface |
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 |
-
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
ldapkey 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) |
-
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) |
-
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 |
WSDL + XSD. portType |
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 |
-
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 ( |
daily (mapping file named |
worker-portal/BATCH/CO/src/resource-mapping/ants-dly-mapping.xml:3 ( |
-
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. |
-
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) |
-
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 |
-
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). |
-
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_RMCAlertcaseChangeIndicatorsis 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, namespacehttp://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?wsdland/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 scopecloud-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_XMLcargo) (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/Medicaidand/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: firstpub.client:httpat line 694 posting/UserAuth, status branch at 1580,EXIT FROM="Try" SIGNAL="SUCCESS"at 2446, session gateBRANCH SWITCH="/Engage_Sessionid/EngageSessionid/Envelope/Body/RESULT/SUCCESS"at 4116 → true branch secondpub.client:httpat 4126, false branch publishLog at 6138; …/services/optInEmailConfirmation/flow.xml single http at 640 postingTransact_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/Writerbound tocoSilverPopInWriterXmlStreamName). 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 (pieaFileHeader→gov.state.nextgen.co.batch.util.PieaFileHeader), :32 (pieaFileRecord→PieaFileRecord). 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 allsrc/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
-
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_Batchpackage internals (publishBatchLog,publishBatchLogWithNotify) — the package is explicitly dropped perDeployment_Instructions.txtand no zip for it exists in the corpus, so batch-log/notify payload shape is unknown; (c) record-level layouts — I did not openworker-portal/interfaceSchema(JAXB "cargo" generated classes = the fixed-width record definitions),worker-portal/BATCH, orIN/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) theJmsRecieveWebApphas NO Java source in the repo (compiled.classonly), so its queue→SQL→SOAP orchestration is inferred from class/method names, not read; (f) theIES_FDSHwebMethods package that implementsVerifySSAis referenced by WSDL but ABSENT from the zip corpus — its internal orchestration is unknown; (g) the ENTIREcustomer-portalrepo (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 takesfilePathas 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 (thescripts/dirs andbuild.properties) that would resolve the actual SFTP destinations and cadences for ANTS, PIEA, Case extract, and GAMMIS; theCO/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.