Skip to main content

A CLAMS processing application

Project description

deploy deploy codecov

Chowda

CLAMS processing app

App

Application available at chowda.wgbh-mla.org

Documentation

Visit the documentation for install and usage instructions.

Basic Pipeline with 2 CLAMS Apps

Actors:

  • User
  • Chowda
    • Webapp
    • Pulbicly available on internet
  • DB
    • Postgresql
    • VPC
    • Sperate Cluster?
  • Runner
    • Pipeline Runner
    • In CLAMS cluster
  • CLAMS
    • Individual CLAMS apps
    • In CLAMS cluster
    • Deployed as either:
      • Webservice
      • Kubernetes Job

Call Sequence Diagram

  • User starts job
  • Chowda enters it in the DB
  • Runner sees new job and starts CLAM1 with initial MMIF
  • CLAM1 Processes data and returns MMIF to Runner
  • Runner Updates DB and starts CLAM2
  • CLAM2 Processes data and returns MMIF to Runner
  • Runner Updates DB
  • User gets data from Chowda
sequenceDiagram
    actor User
    participant Chowda
    participant DB
    participant Runner
    participant CLAM1
    participant CLAM2


    %% User starts job
    activate User
    note left of User: Hey, Chowda! Start batch 123 on pipeline 456
    User ->> + Chowda: Start batch 123 with files [] through pipeline 456
    Chowda ->> + DB: INSERT (batch, pipeline, Initial mmif) to TABLE pipeline_runs
    DB ->> - Chowda: {pipeline_run_id, status: waiting}
    Chowda ->> - User: Pipeline run {id} is {status}
    deactivate User
    loop backgroud process
        Runner ->> DB: Check for new jobs
    end

    %% Runner
    activate Runner
    note left of Runner: Found new job!
    Runner ->> + CLAM1: Start app 1, with initial MMIF
    deactivate Runner

    %% CLAM1
    note right of CLAM1: Processing!
    loop Status check
        Runner ->> CLAM1: Status report!
        CLAM1 ->> Runner: XX %
        Runner ->> DB: UPDATE pipeline_run_id SET status CLAM1 XX %
    end
    note right of CLAM1: Done!
    CLAM1 ->> - Runner: intermediate MMIF
    activate Runner
    Runner ->> DB: UPDATE pipeline_run_id SET status 'done' + MMIF

    %% CLAM 2
    Runner ->> + CLAM2: Start app 2 with intermediate MMIF
    deactivate Runner
    note right of CLAM2: Processing!
    loop Status check
        Runner ->> CLAM2: Status report!
        CLAM2 ->> Runner: XX %
        Runner ->> DB: UPDATE pipeline_run_id SET status CLAM2 XX %
    end

    %% User update
    activate User
    note left of User: Is it done yet?
    User ->> + Chowda: Pipeline update?
    Chowda ->> + DB: WATCH pipeline_runs WHERE status=running
    DB ->> Chowda: ACTIVE_PIPELINE_RUNS
    Chowda -->> User: Websocket: Batch 123 status [CLAM1: done, CLAM2: XX %]
    note left of User: Not quite, but it should be done soon.

    %% CLAMS finished
    note right of CLAM2: Done!
    CLAM2 -->> - Runner: finished MMIF
    activate Runner
    Runner ->> - DB: UPDATE pipeline_run_id SET status MMIF
    DB ->> Chowda: Batch 123 update
    Chowda -->> User: WS: batch 123 Finished!
    deactivate Chowda
    deactivate DB

    note left of User: Yay! My metadata is perfect!
    deactivate User

develop

pre-commit secret scanning

  1. Install ggshield
pip install ggshield
# or
brew install gitguardian/tap/ggshield
  1. Login to gitguardian
ggshield auth login
  1. Install the pre-commit hooks
pre-commit install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chowda-0.6.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chowda-0.6.0-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file chowda-0.6.0.tar.gz.

File metadata

  • Download URL: chowda-0.6.0.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chowda-0.6.0.tar.gz
Algorithm Hash digest
SHA256 ce1226feee2c732dc105e6835e1df5c29be5304a10ccdfb209851a2cf5d84d3d
MD5 5f0ae237b0be75274056bec4e4575377
BLAKE2b-256 2e2a4bb669b65158df928d32ab0f67c5b2f2d5a8f1de149f7d43dec063c3e9b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for chowda-0.6.0.tar.gz:

Publisher: publish.yml on WGBH-MLA/chowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chowda-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: chowda-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 27.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chowda-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0b1af0197cf8b10b991cd490b22d7947e134d5ef59d31a85f32f20ac8345418
MD5 c9efc0aadf37a5e4c87b1a03d9a82e92
BLAKE2b-256 d89894cb9a2a6215055fab5ad838144c93ea2a2a42b9aaafaaf4eee665d579fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for chowda-0.6.0-py3-none-any.whl:

Publisher: publish.yml on WGBH-MLA/chowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page