No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Robert 259026a85a
Some checks are pending
Deploy PacerShim / deploy (push) Waiting to run
removed something
2026-05-29 11:30:42 -04:00
.gitea/workflows fix deployment: reset --hard on pull untracked obj and bin 2026-05-29 11:26:49 -04:00
Controllers still having issues iwth the logging reaidg the stream 2026-05-01 09:50:22 -04:00
images adding demo endpoint 2026-04-29 15:46:14 -04:00
Models added login and logout endpoints, not sure if the timerjob sent json or xml so made both enviroment variables take priority over what is sent by timerjob so accounts can be subbed out 2026-04-25 08:57:59 -04:00
pacerdocumentation Added known PACER endpoints and added schemas. Probably some risk i missed something 2026-04-24 14:36:21 -04:00
Properties Initial commit 2026-04-23 11:15:58 -04:00
Services removed something 2026-05-29 11:30:42 -04:00
.gitattributes Added LFS tracking 2026-04-24 11:45:02 -04:00
.gitignore Updating .gitignore to remove extra files the project doesnt need. Added the parameters for the end points based on the documentation and added swagger to view it 2026-04-24 14:39:24 -04:00
appsettings.Development.json Initial commit 2026-04-23 11:15:58 -04:00
appsettings.json Initial commit 2026-04-23 11:15:58 -04:00
feedback Update feedback 2026-05-29 14:59:19 +00:00
PacerShim.csproj added a ton of swagger notes, added a logs endpoint behind adminkey 2026-04-25 12:07:37 -04:00
PacerShim.http Initial commit 2026-04-23 11:15:58 -04:00
PacerShim.sln Initial commit 2026-04-23 11:15:58 -04:00
Program.cs added a ton of swagger notes, added a logs endpoint behind adminkey 2026-04-25 12:07:37 -04:00
README.md updating charts 2026-05-02 08:02:36 -04:00

Pacer API Shim

This is a shim between the AMMS timer job and the PACER API.

Architecture

Architecture

Work Plan

Work Plan

How it Works

It will intercept the traffic ment to go to PACER, acting as a shim both handling the MFA login and shaping the data to what the current timerjob expects.

Progress

Progress

Concerns

  • Do we have the current credentails?
  • Will we use existing server or stand up a new one?
  • Which version/s of .net existing server?
  • Does the server use proxy settings for internet access?
  • Do we know which fields and API endpoints the timerjob is trying to find from PACER
  • Validate a self signed certificate allow the impersonation of PACER?

End Points Discovered on Pacer

End Points Stubbed out

swagger

Pacer Developer Resources

PACER Developer Resources

Request Flow

flowchart TB
    TJ["Timer Job / AMMS"] -- POST /login --> LOGIN{"IsLive?"}
    LOGIN -- false --> STUBTOKEN["Return 200 stub-token<br>no PACER call"]
    LOGIN -- true --> REALLOGIN["Login to PACER at<br>qa-login.uscourts.gov<br>Return real token"]
    LOGIN --> LOGINLOG["Log: method + path<br>no body"]
    TJ -- "API Request<br>POST cases/find, parties/find<br>POST cases/download, parties/download<br>GET cases/download/status/{id}, parties/download/status/{id}<br>GET cases/download/{id}, parties/download/{id}<br>GET cases/reports, parties/reports<br>DELETE cases/reports/{id}, parties/reports/{id}" --> ISLIVE{"IsLive?"}
    ISLIVE -- false --> STUBLOG["Log: method + path + body"]
    STUBLOG --> RETURN503["Return 503"] & LOGFILE[("requests.log<br>rolls to .old at 10MB")]
    ISLIVE -- true --> LIVELOG["Log: method + path"]
    LIVELOG --> PACERLOGIN["Login to PACER"] & LOGFILE
    PACERLOGIN --> OUTLOG["Log: outbound URL + body"]
    OUTLOG --> FORWARD["Forward request to<br>qa-pcl.uscourts.gov"]
    FORWARD --> PACERLOGOUT["Logout from PACER"]
    PACERLOGOUT --> RESPONSELOG["Log: PACER status + response body"]
    RESPONSELOG --> RESPONSE["Return PACER response"] & LOGFILE
    TJ -- POST /logout --> LOGOUT{"IsLive?"}
    LOGOUT -- false --> STUB200["Return 200<br>no PACER call"]
    LOGOUT -- true --> REALLOGOUT["Logout from PACER"]
    LOGOUT --> LOGOUTLOG["Log: method + path<br>no body"]
    LOGINLOG --> LOGFILE
    LOGOUTLOG --> LOGFILE
    OUTLOG --> LOGFILE
flowchart TD
    ADMIN[Admin]
    ADMIN -->|GET /admin/live?key=| LIVESTATUS[Returns current IsLive state]
    ADMIN -->|POST /admin/live/toggle?key=| TOGGLE[Flips IsLive true/false]
    ADMIN -->|GET /admin/logs?key=| LOGS[Returns requests.log contents]
    ADMIN -->|GET /admin/demo/cases?key=| DEMO["Fetch real PACER cases<br>Bypasses IsLive — always hits PACER"]
    ADMIN -->|GET /test?key=| TEST[Test PACER login/logout sequence]