Showing results for 
Search instead for 
Did you mean: 

Dev Space

Customize & extend the power of Alteryx. SDKs, APIs, custom tools, and more!

Python SDK - decrypting password from HTML GUI


Hello folks, 


For those of you who have troubles with encryption/decryption of your secrets between HTML and Python SDKs. 

I found that documentation describing different states of encryption is wrong about the modes.

'machine' encryption specified in HTML corresponds to 0 in Python decrypt_password.

     .postJsEventWithCallback('Encrypt',  { text: this.state.apiToken, encryptionMode: 'machine' }, encryptedToken => {

to decrypt the token you would need to use:


self.alteryx_engine.decrypt_password(config.token, 0)




The documentation is correct.  The confusion may be in the name of the method decrypt_password, because it is used to both encrypt and decrypt a password.  To encrypt a password, the user would set mode to either 2 or 3 and the encrypted_password would be a non-encrypted string.  To decrypt an encrypted password, the user would set mode to 0 and the encrypted_password would be an encrypted string from a previous Machine(2) or User(3) mode encryption.


Returns a string of encrypted or decrypted text. Works with user and machine encryption.

decrypt_password(encrypted_password, mode) -> str :

encrypted_password: The text to be treated.

Supported options include:

0: Decrypt.

2: Machine encryption

3: User encryption


Thank you for clarification @WilliamT!


With the setup above, when I try to upload the workflow to the private Gallery in the cloud, I'm getting the error, even though it works fine locally.



RuntimeError: InternalError: DecryptPassword - buffer too small.

In the docs, it's says 'machine' encryption is recommended to upload workflows to the Gallery. Is there other ways to store secrets between environments?