szabacsik/snowflake-json-web-token

Snowflake JSON Web Token

1.0.1 2022-12-21 15:57 UTC

This package is auto-updated.

Last update: 2024-04-21 18:46:51 UTC


README

Usage

composer require szabacsik/snowflake-json-web-token
    $token = new \Szabacsik\SnowflakeJsonWebToken\Token();
    $token
        ->setAccount('account')
        ->setUsername('username')
        ->setPrivateKeyPath('/path/to/your/private_key.p8')
        ->setPrivateKeyPassphrase('password')
        ->setIssuedAt(time())
        ->setExpirationTime(time() + 3600);
    echo $token->generate();

Create private key

openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out snowflake_rsa_private_key.p8

Create public key

openssl rsa -in snowflake_rsa_private_key.p8 -pubout -out snowflake_rsa_public_key.pub

Set your public key to your snowflake user

alter user {{YOUR_USERNAME}} set rsa_public_key='from snowflake_rsa_public_key.pub MIIBIjANBgkqhkiG...';

Submitting a test request to execute SQL statement

./tests/EndToEndTest.php

Links

https://docs.snowflake.com/en/developer-guide/sql-api/index.html
https://api.developers.snowflake.com/
https://docs.snowflake.com/en/developer-guide/sql-api/authenticating.html#label-sql-api-authenticating-key-pair
https://datatracker.ietf.org/doc/html/rfc7519
https://docs.snowflake.com/en/developer-guide/sql-api/submitting-requests.html
https://docs.snowflake.com/en/developer-guide/sql-api/submitting-requests.html#example-of-a-request
https://docs.snowflake.com/en/developer-guide/sql-api/authenticating.html#using-key-pair-authentication
https://streamsets.com/blog/snowflake-key-pair-authentication/