All documentation

Published April 29, 2025 Guide
---
config:
  layout: dagre
---
flowchart TD
    Start(["Start GitLab Job"]) L_Start_Token_0@--> Token["Get OAuth Token"]
    Token L_Token_Source_0@--> Source["Load Invoke-DCLADAudit.ps1"]
    Source L_Source_CheckJson_0@--> CheckJson["Check if JSON exists or create"]
    CheckJson --> GetAccounts["Get Inactive Accounts"]
    GetAccounts L_GetAccounts_LoopAccounts_0@--> LoopAccounts{"For each account"}
    LoopAccounts L_LoopAccounts_AlreadyInJson_0@--> AlreadyInJson{"Already emailed?"} & CommitJson["Commit updated JSON"]
    AlreadyInJson L_AlreadyInJson_Expired_0@-- Yes --> Expired{"20+ days expired?"}
    AlreadyInJson L_AlreadyInJson_SendEmail_0@-- No --> SendEmail["Send Password Rotation Email"]
    SendEmail --> UpdateJson["Update JSON with sent timestamp"]
    UpdateJson L_UpdateJson_LoopAccounts_0@--> LoopAccounts
    Expired L_Expired_ReadyToDisable_0@-- Yes --> ReadyToDisable["Flag Account for Disablement"]
    ReadyToDisable L_ReadyToDisable_LoopAccounts_0@--> LoopAccounts
    Expired L_Expired_LoopAccounts_0@-- No --> LoopAccounts
    CommitJson L_CommitJson_Done_0@--> Done(["Finish Job"])
    L_Start_Token_0@{ animation: fast } 
    L_Token_Source_0@{ animation: fast } 
    L_Source_CheckJson_0@{ animation: fast } 
    L_GetAccounts_LoopAccounts_0@{ animation: fast } 
    L_LoopAccounts_AlreadyInJson_0@{ animation: fast } 
    L_LoopAccounts_CommitJson_0@{ animation: fast } 
    L_AlreadyInJson_Expired_0@{ animation: fast } 
    L_AlreadyInJson_SendEmail_0@{ animation: fast } 
    L_UpdateJson_LoopAccounts_0@{ animation: fast } 
    L_Expired_ReadyToDisable_0@{ animation: fast } 
    L_ReadyToDisable_LoopAccounts_0@{ animation: fast } 
    L_Expired_LoopAccounts_0@{ animation: fast } 
    L_CommitJson_Done_0@{ animation: fast }