File Upload ProcessΒΆ
This document provides a high-level sequence diagram of how the NGSB application uploads general ledger files for processing.
sequenceDiagram
participant client
participant server
participant db
participant gcs
rect rgba(0, 0, 0, .3)
Note over client,gcs: Create general ledger
client ->> server: createLedger()
server ->> db: insert general ledger
end
rect rgba(0, 0, 0, .3)
Note over client,gcs: Build signed url
client ->> server: buildSignedUrl<br/>(ledgerId, md5, contentType, GL or SPED)
gcs ->> server: Returns signed url, fileId
server ->> gcs: getSignedUrl(write)
server ->> db: Check permissions
server ->> db: Create file on ledger
server ->> client: Forwards signed url
end
rect rgba(0, 0, 0, .3)
Note over client,gcs: Upload signed url
client ->> gcs: PUT on url with file
client ->> server: markFileUploaded(fileId)
end
rect rgba(0, 0, 0, .3)
Note over client,server: Start processing job
client ->> server: startProcessing(ledgerId)
server ->> client: returns jobId
end
client ->> client: poll jobId until success/failure