A helper to decrypt data shared by Raytio users
!pipeline
!coverage
!npm version

This SDK is designed to run on nodejs >=18.
``sh
npm install --save @raytio/decrypt-helper
General Usage
To process a submission, you need to supply an
applicationId, instanceId, and config.`js
const raytio = require("@raytio/decrypt-helper");raytio
.processSubmission({
instanceId: "...",
applicationId: "...",
config: {
// the URL to the raytio client (not the API)
CLIENT_URL: "https://app.rayt.io",
// if using raytio.saveToS3Bucket, specify the ID of the bucket here
S3_BUCKET: "",
// the credentials of an organization user
RAYTIO_USERNAME: "...",
RAYTIO_PASSWORD: "...",
// used when generating a PDF report, if not supplied defaults to "en-NZ" and "Pacific/Auckland"
// for available timezone options, see the map on https://momentjs.com/timezone
DATE_FORMAT: "en-nz",
TIMEZONE: "Pacific/Auckland",
PDF_LANGUAGE: "en", // the value must be one of the languages listed here: https://gitlab.com/raytio/tools/decrypt-helper/-/tree/main/src/locales/translations
},
verbose: true,
})
.then(raytio.generatePDF()) // optional, will add the report to
files in the output
.then(({ json, csv, files }) => {
// do something with json, csv, and files
});
`Usage in AWS Lambda
When running in AWS Lambda, you can use the function
raytio.getAndValidateConfig() to extract the configuration from the serverless.yml file.You can also pipe the response directly to
raytio.saveToS3Bucket.`js
const raytio = require("@raytio/decrypt-helper");raytio
.processSubmission({
instanceId: "...",
applicationId: "...",
config: raytio.getAndValidateConfig(),
verbose: true,
})
.then(raytio.generatePDF())
.then(raytio.saveToS3Bucket());
`Help
For more infomation, please refer to the Raytio Documentation
Contributing
To test the PDF generation, run
yarn dev-pdf$3
We use jest for unit tests, snapshot tests of the PDF, and integration tests for whole process. See the tests folder.
To run tests, use
yarn test. To run and update snapshots, use yarn test -u. You will need to configure the environment variables in .env for integration tests.If jest apears to be stuck running the end-to-end tests, run
yarn jest --clearCache`.You can also test changes to this code using serverless-offline, see here for more info.