11
votes

After updating Airflow to 1.9 all variables are created as encrypted.

Is it possible to disable encryption ?

1
Any advances with disabling encryption? - Alex Dembo

1 Answers

1
votes

1-The Croods way....

 from airflow.models import get_fernet
    from airflow.models import Variable
    var_to_decryp = Variable.get("var_name",deserialize_json=True)
    fernet = get_fernet()
    decryp_value = fernet.decrypt(bytes(var_to_decryp, 'utf-8')).decode()

2-The right way will be using get_val() from Variable model:

def get_val(self):
    log = LoggingMixin().log
    if self._val and self.is_encrypted:
        try:
            fernet = get_fernet()
            return fernet.decrypt(bytes(self._val, 'utf-8')).decode()
        except InvalidFernetToken:
            log.error("Can't decrypt _val for key={}, invalid token "
                      "or value".format(self.key))
            return None
        except Exception:
            log.error("Can't decrypt _val for key={}, FERNET_KEY "
                      "configuration missing".format(self.key))
            return None
    else:
        return self._val

but i don't know how ,that is home work.