Skip to content

Instantly share code, notes, and snippets.

@mrysav
Last active January 25, 2025 20:19
Show Gist options
  • Select an option

  • Save mrysav/aa198de6902200115af61c0890cabbd9 to your computer and use it in GitHub Desktop.

Select an option

Save mrysav/aa198de6902200115af61c0890cabbd9 to your computer and use it in GitHub Desktop.
flowchart LR
    A([fa:fa-user Lab Administrator])
    B([fa:fa-user Lab Technician])
    C([fa:fa-user Lab Administrator])
    D([fa:fa-user Lab Technician])
    E[(BLIS @ Remote Lab)]
    I[(BLIS @ Remote Lab)]
    F[(BLIS @ Cloud)]
    A--Uses-->E
    B--Uses-->E
    E--Sends Backups To -->F
    C--Uses-->I
    D--Uses-->I
    I--Sends Backups To -->F
    G([fa:fa-user Country Director])
    H([fa:fa-user Cloud Administrator])
    H--Monitors & updates-->F
    G--Gets Reports From-->F
Loading
sequenceDiagram
    actor O as Offline Lab Administrator
    participant L1 as Offline Lab
    participant B as BLIS Cloud
    actor A as Cloud Administrator

    Note over O,A: Initial Connection
    A->>B: Create new lab
    A->>B: Copy Lab Connection Key (XYZ01-ABC02...) and Cloud Connection URL
    A->>O: Distribute Connection Key and URL
    O->>L1: Enter Connection Key and URL in "Connect" page

    Note over L1, B: Connection handshake
    L1->>B: POST /:lab_id/connect (connection key, lab public key)
    Note over B: Verify connection key
    B->>L1: Return new connection key and server public key

    Note over O, B: (Semi-)Automated backup
    Note over L1: Present notification to lab administrator if a backup hasn't been made in a while
    O->>L1: Initiate backup
    L1->>B: POST /:lab_id/backups (connection key, backup .zip)
    Note over B: Verify connection key and backup integrity
    Note over B: Apply updates from backup
    B->>L1: Return new connection key

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment