da-playa
TypeScript icon, indicating that this package has built-in type declarations

0.0.25 • Public • Published

Da-Playa - Dynamo Deploy Locker and Running Jobs coordinator

Da-Playa stores the locks and running jobs in DynamoDB

DB Schema:

DaPlayaLocks

id         |       user        |   env        | createdAt | updatedAt | active | uberlock | meta
                                                           
<UUID>     |  <COMMITER_EMAIL> | PRODUCTION   | 123123123 | 123123123 | true   | false    | CI URL
<UUID>     |  <COMMITER_EMAIL> | STAGING      | 123123123 | 123123123 | false  | true     | Slack
<UUID>     |  <COMMITER_EMAIL> | WHATEVZ      | 123123123 | 123123123 | false  | true     | CLI

DaPlayaRunningJobs

id         |       user        |   jobname    | version   | started   | ended     | skipped
                                                                                                         
<UUID>     |  <COMMITER_EMAIL> | deploy-prod  | GIT_SHA1  | 123123123 | 123123123 |  true  
<UUID>     |  <COMMITER_EMAIL> | deploy-stage | GIT_SHA1  | 123123123 |           |  false 
<UUID>     |  <COMMITER_EMAIL> | WHATEVZ      | GIT_SHA1  | 123123123 | 123123123 |  false 

CLI

Loads AWS credentials from environment variables (either AWS_PROFILE or the explicit AWS_SECRET_ACCESS_KEY and AWS_ACCESS_KEY_ID).

init                                                                          # creates table
locks list --env <ENV>                                                        # list locks
locks release --env <ENV> --user <USER> [--uberlock]                          # release locked env for user at env
locks lock --env <ENV> --user <USER> [--meta <META>] [--uberlock]             # locks an env for the user
jobs start --jobname <JOBNAME> --user <USER> --gitversion <VERSION>           # creates a running job
jobs get --jobname <JOBNAME> --gitversion <VERSION>                           # get the details of a specific job
jobs end --jobname <JOBNAME> --gitversion <VERSION> [--skipped]               # ends a running job, optionally set it as skipped
jobs active --jobname <JOBNAME> [--ttl <TIMEFRAME>]                           # list all running jobs within time frame
jobs skipped --jobname <JOBNAME> [--ttl <TIMEFRAME>]                          # list all skipped jobs within time frame

Note:

lock keeps writing attempts for locking in case it's waiting (every 5 seconds).

E.g. : Still locked at env <ENV> by <USER>

Additional Env Vars

DAPLAYA_AWS_REGION # Optionally explicitly set region to save DynamoDB table

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....................................................
:::::::::::::::::::::::::::::::::::::::::::::::::.:::::::................................::.---:.....:.........
:::::::::::::::::::::::::::::::::::::::::::::::::------:::::.:::.......................:::--:..........::::::..
:::::::::-:::::--:::::::::::::::::::---:--:::::::::::::::::::::::.............::::::::..............:::::::::::
::::::-::--:-::---:::::::::::::::::::::--:-::::::::::::::::::::::..........:::-----:--:::...........=+-:::-+*+-
::::----::-----:--:::::::::::::::::::::::::::::::::::----=--::::::..:....::--------:::::-::::::.....:##-:+*#+-.
:::::-:::::----:::--:::::::::::::::::::::::::::::::::::--:::::::::.:....:----:-------====*=-:::.::..:+#++##=:::
:::::--:::::----:-----::::::::::::::::::::::::::::::::::::::::::::::...:------------------::.::::::::+#*#*+==-:
::::::::::::-----------::::::::::::::::::::::::::::::::::::::::::::::.::---------------:---:.::::-=**##%%%%##*-
--:::::::--:::----------:::-::::======-::::::::::::::::::::::::::::::::--------------------:::::+#*=+*#%%#+*++-
----:::::::::::--:--------:::::-#%#+=-:::::::::::::::::::::::::::::::::--------------------:::-**=--*####%*=:::
------::::-::::---::::----::::-*=*=++=====-::::::::::::::::::::::::::::::-------=*===------:=+=-::-**+#=+#*+:::
-------:::---------:-------::-*+=%%%#*+=-:::::::::::::::::::::::::::::::::-------+###+---=*#*-::::=+--*:-#+-:::
--------::-------------------*#-+#*=-::::::::::::::::::::::::::::::::::::::::-----+%##*--*%%=::::-+-:=+::+=-:::
---------------------:------+%*-+=------:--:::::::::::::::::::::::::::::::::::-+**##%%%#*%#+---::::::+=::-:::::
---------------------------+%%+-++--------:::::::::::::::::::::::::::::::::::+******%%%#%%%%%%#*=-:::*=::::::::
=-------------------------=%@@=-+*------------::::::::::::::::::::::::::::::--:-:=+*#%%%%%%#**+##*=::#-::::::::
=------------------------=%@@@--+*------------------::::::::::::::::::::::::::::-*#***#%#@%%*-::---::#-::::::::
====---------------------%@@@@--*%------------------::::::::::::::::::::::::::::+#*-=#%##%#%%+-:::::-%=::::::::
========----------------#@@%%@=*#%+-----------=------------::::::::::::::::::::-+--:+##*=%+*#%=:::::-%=::::::::
=======-===------------*%@@@%%%+*@#-----------+------------:----:-::::::::::::::-:::-**+-**-+#+::::::%+-:::::::
==============--------+@@%#+*@*-*@%=----------*----==-------------------::::::::::::-**-:=%=:==::::::%*-:::::::
=================---=+@@#=-#@@*-*@@#----------#---------------------------:::::::-:---=-:-#*:--------##-::::--:
=====================%%+-=%@@#*-#@@@+---------%+-----------------------------::-----------+%+--------#%-------:
===================+%#+=+@@@@#++#@@@%=--------%#----=-==---===----------------------------=%%=----===#%==------
++++++++++++++*++++%#**#@@@@@%*#%@@@@%++++++++%@*++++++++++================================+@%=======#@*======-
******************##+*#@@@@@@@#%@@@@@@*++==+++%@#++==+============--------------------------*@#=-----*@#======:
=+++++++**+++****##++#@%#**#%@@#%@@@@@@+======@@@*===============----------------------------#@#-----+@%------:
=+++++++++++++++*#+*%%*+++#@@@@+%@@@@@@%+=====@@@@+==============-----------------------------#@#==--+@@===---:
+++++++++++++++**+*%*++*%@@@@@%=%@@@@@@@%+====@@@@@*=============-----------------------------=#@%+===@@*=====-
+++++++++++++++*+*#++#%@@@@@@@@+%@@@@@@@@%*===@@@@@@#==============----------------------------=#@@*-=%@#=====:
++++++++++++++*+##*#@@@@@@@@@@@*%@@@@@@@@@@#++@@@@@@@%*============--------=---------------------*@@#=#@@+==+++
+++++++++++++*+#%%@%%%####%%%@@%#############**++++++*++++++======----=-=-=--------------===-=-===+%@@%@@%***%*
++++++++++++##%%%##*##*******##%#**********+**#++++++======================------+******#%@%%**%##%%@@@@@@@@%%*
+++++++++++++*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*============--======--------=+#%%#@@@@@@@@@@@@@@@@@@@@@@@*
=+++++++++++++++*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#++++=====================--======++=*%%%%@@@@@@@@@@@@@@@@@@#
++++++++++++++++++*#%%%%%%%%%%%%%%%%%%%%%%%%%%%%*+++++=+===============================+*===+@@@@@@@@@@@@@@@@@#
++++++++++++++++++++++++++++++++++++++++++++++++=============================+===============**%@@@@@@@@@@@@@@%
+++++++++++++=+++==+=======++++++++++====+=====================================================**%@@@@@@@@@@@@%
+++++++++++++++++++++==++==++++++++++++===================================================+++*+=+*@@@@@@@@@@@@%
+++++++=++++++++++++++++++++++++++++++++++++++++==++++++==++++=====++=+=+++**+++++++++++++++##+*%%@@@@@@@@@@@@%
=+++++++++++++++++++++++++++++++++=+=+++++++++++=+++++++++++++++++*%@%###%%@@@%%#*++%*++#%++%@#@@@@@@@@@@@@@@@%
===============+=+++++++++++++++++++++++++++++=+++++++++++++++%%%%@%%%%@@@@@@@@@@@@%@%+*%@@@@@@@@@@@@@@@@@@@@@%

Testing locally

npm run -s cli -- <PARAMS> # -s to supress npm verbose output

Package Sidebar

Install

npm i da-playa

Weekly Downloads

11

Version

0.0.25

License

MIT

Unpacked Size

106 kB

Total Files

57

Last publish

Collaborators

  • erikzaadi