---
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 }