@ -2,20 +2,24 @@ const { Client, utils } = require("@budibase/auth/redis")
const { getGlobalIDFromUserMetadataID } = require ( "../db/utils" )
const APP_DEV_LOCK_SECONDS = 600
let devAppClient , debounceClient
const AUTOMATION_TEST_FLAG_SECONDS = 60
let devAppClient , debounceClient , flagClient
// we init this as we want to keep the connection open all the time
// reduces the performance hit
exports . init = async ( ) => {
devAppClient = new Client ( utils . Databases . DEV_LOCKS )
debounceClient = new Client ( utils . Databases . DEBOUNCE )
flagClient = new Client ( utils . Databases . FLAGS )
await devAppClient . init ( )
await debounceClient . init ( )
await flagClient . init ( )
}
exports . shutdown = async ( ) => {
if ( devAppClient ) await devAppClient . finish ( )
if ( debounceClient ) await debounceClient . finish ( )
if ( flagClient ) await flagClient . finish ( )
}
exports . doesUserHaveLock = async ( devAppId , user ) => {
@ -67,3 +71,16 @@ exports.checkDebounce = async id => {
exports . setDebounce = async ( id , seconds ) => {
await debounceClient . store ( id , "debouncing" , seconds )
}
exports . setTestFlag = async id => {
await flagClient . store ( id , { testing : true } , AUTOMATION_TEST_FLAG_SECONDS )
}
exports . checkTestFlag = async id => {
const flag = await flagClient . get ( id )
return ! ! ( flag && flag . testing )
}
exports . clearTestFlag = async id => {
await devAppClient . delete ( id )
}