{"_id":"@agnostack/custom-integration-reference","_rev":"3-20d81a3d5655ef6ae7453de0ee1e808a","name":"@agnostack/custom-integration-reference","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@agnostack/custom-integration-reference","version":"1.0.0","author":{"url":"https://agnostack.com","name":"agnoStack Dev","email":"developers@agnostack.com"},"license":"SEE LICENSE IN LICENSE","_id":"@agnostack/custom-integration-reference@1.0.0","maintainers":[{"name":"agrohs","email":"adam@agnostack.com"}],"homepage":"https://github.com/agnostack/custom-integration-reference#readme","bugs":{"url":"https://github.com/agnostack/custom-integration-reference/issues"},"dist":{"shasum":"f9fa0698e578e8a496e3e9889ec4076a66b7e63e","tarball":"https://registry.npmjs.org/@agnostack/custom-integration-reference/-/custom-integration-reference-1.0.0.tgz","fileCount":23,"integrity":"sha512-4eYL14fuOKnSPTwaQO8X9f84144Zs6/QCDCYB8cwVDPaqYybSqkqvwh6SUKdQnBZpOtfhkr8xhZ4Kavy/I/9Fg==","signatures":[{"sig":"MEYCIQCsFyD7OAO46we3k8d+GL7K2aohoF9S9nYHxtsGLf2UkwIhALjl0USOh9G90OtzFTjeOt8TXgaYb6ytDiSjRiLeIXsV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29241},"pnpm":{"peerDependencyRules":{"ignoreMissing":["expo","firebase-admin","http-proxy","next","react","react-dom","react-native","react-is"]}},"owner":"agnoStack","engines":{"node":">=22.x"},"gitHead":"376d8b612669be67db72736d3e817a62f092b880","private":false,"scripts":{"nx":"nx","dev":"sam local start-api --config-env dev","build":"sam build","watch":"nx run dev-ngrok --port=4000","deploy":"sam deploy","watch:x86":"nx run dev-ngrok-x86 --port=4000","release:dev":"pnpm run build && pnpm run deploy --config-env dev","release:prod":"pnpm run build && pnpm run deploy --config-env prod","deploy:guided":"pnpm run deploy --guided","release:staging":"pnpm run build && pnpm run deploy --config-env staging","generate-keypair":"node scripts/generate-keypair.js","release:instance1":"pnpm run build && pnpm run deploy --config-env instance1","release:instance2":"pnpm run build && pnpm run deploy --config-env instance2"},"_npmUser":{"name":"agrohs","email":"adam@agnostack.com"},"repository":{"url":"git+https://github.com/agnostack/custom-integration-reference.git","type":"git"},"_npmVersion":"10.9.4","description":"Reference implementation for agnoStack custom integration.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"raw-body":"2.x","@agnostack/env":"latest","@agnostack/verifyd":"latest","isomorphic-webcrypto":"2.x"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.4","devDependencies":{"nx":"latest","chalk":"4.x","ngrok":"latest","dotenv":"17.x","semantic-release":"25.x","semantic-release-export-data":"1.x","@semantic-release/commit-analyzer":"13.x","@semantic-release/release-notes-generator":"14.x"},"_npmOperationalInternal":{"tmp":"tmp/custom-integration-reference_1.0.0_1770124114887_0.6135059557332316","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@agnostack/custom-integration-reference","version":"1.0.1","author":{"url":"https://agnostack.com","name":"agnoStack Dev","email":"developers@agnostack.com"},"license":"SEE LICENSE IN LICENSE","_id":"@agnostack/custom-integration-reference@1.0.1","maintainers":[{"name":"agrohs","email":"adam@agnostack.com"}],"homepage":"https://github.com/agnostack/custom-integration-reference#readme","bugs":{"url":"https://github.com/agnostack/custom-integration-reference/issues"},"dist":{"shasum":"6927d6f01a87a6d4d1625022b20c2c4ad8ba95b0","tarball":"https://registry.npmjs.org/@agnostack/custom-integration-reference/-/custom-integration-reference-1.0.1.tgz","fileCount":23,"integrity":"sha512-l7YKLoJVp/mIbEsLqunsQS6SWjCSncw6+1/JoU9BGqXqaRGuv5a6Yrmo1VK/K09E3T1Fug6rhJjEe8USd/ffqA==","signatures":[{"sig":"MEQCICx5fF6k3dPsbflQGLAQlFo38JDpYqtj6DMfDhiUYwxtAiBBOopDR5tfwMouQKH6GS+wL92y5IMPZCRk3eymDcg4pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29267},"pnpm":{"peerDependencyRules":{"ignoreMissing":["expo","firebase-admin","http-proxy","next","react","react-dom","react-native","react-is"]}},"owner":"agnoStack","engines":{"node":">=22.x"},"gitHead":"58ef71d3910a667796c605bfeda7f5a7c0b5f772","private":false,"scripts":{"nx":"nx","dev":"sam local start-api --config-env dev","build":"sam build","watch":"nx run dev-ngrok --port=4000","deploy":"sam deploy","watch:x86":"nx run dev-ngrok-x86 --port=4000","release:dev":"pnpm run build && pnpm run deploy --config-env dev","release:prod":"pnpm run build && pnpm run deploy --config-env prod","deploy:guided":"pnpm run deploy --guided","release:staging":"pnpm run build && pnpm run deploy --config-env staging","generate-keypair":"node scripts/generate-keypair.js","release:instance1":"pnpm run build && pnpm run deploy --config-env instance1","release:instance2":"pnpm run build && pnpm run deploy --config-env instance2"},"_npmUser":{"name":"agrohs","email":"adam@agnostack.com"},"repository":{"url":"git+https://github.com/agnostack/custom-integration-reference.git","type":"git"},"_npmVersion":"10.9.4","description":"Reference implementation for agnoStack custom integration.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"raw-body":"2.x","@agnostack/env":"latest","@agnostack/verifyd":"latest","isomorphic-webcrypto":"2.x"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.4","devDependencies":{"nx":"latest","chalk":"4.x","ngrok":"latest","dotenv":"17.x","semantic-release":"25.x","semantic-release-export-data":"1.x","@semantic-release/commit-analyzer":"13.x","@semantic-release/release-notes-generator":"14.x"},"_npmOperationalInternal":{"tmp":"tmp/custom-integration-reference_1.0.1_1770129349966_0.319394767749714","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"private":false,"name":"@agnostack/custom-integration-reference","version":"1.0.2","author":{"name":"agnoStack Dev","email":"developers@agnostack.com","url":"https://agnostack.com"},"owner":"agnoStack","description":"Reference implementation for agnoStack custom integration.","license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/agnostack/custom-integration-reference#readme","repository":{"type":"git","url":"git+https://github.com/agnostack/custom-integration-reference.git"},"engines":{"node":">=22.x"},"packageManager":"pnpm@8.15.4","pnpm":{"peerDependencyRules":{"ignoreMissing":["expo","firebase-admin","http-proxy","next","react","react-dom","react-native","react-is"]}},"scripts":{"nx":"nx","build":"sam build","deploy":"sam deploy","deploy:guided":"pnpm run deploy --guided","release:dev":"pnpm run build && pnpm run deploy --config-env dev","release:staging":"pnpm run build && pnpm run deploy --config-env staging","release:prod":"pnpm run build && pnpm run deploy --config-env prod","release:instance1":"pnpm run build && pnpm run deploy --config-env instance1","release:instance2":"pnpm run build && pnpm run deploy --config-env instance2","dev":"sam local start-api --config-env dev","watch":"nx run dev-ngrok --port=4000","watch:x86":"nx run dev-ngrok-x86 --port=4000","generate-keypair":"node scripts/generate-keypair.js"},"dependencies":{"@agnostack/env":"latest","@agnostack/verifyd":"latest","isomorphic-webcrypto":"2.x","raw-body":"2.x"},"devDependencies":{"@semantic-release/commit-analyzer":"13.x","@semantic-release/release-notes-generator":"14.x","chalk":"4.x","dotenv":"17.x","ngrok":"latest","nx":"latest","semantic-release":"25.x","semantic-release-export-data":"1.x"},"publishConfig":{"access":"public"},"_id":"@agnostack/custom-integration-reference@1.0.2","gitHead":"178e976fc8a3046c5ec1206011cdb7919ae855f9","bugs":{"url":"https://github.com/agnostack/custom-integration-reference/issues"},"_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-rdk4CadsTordTD5n2KG2utHrCzlyCQwTKcIqrStLyWnW/5U0FhTJCsAhaBlAJm4IjXMqnng7OdhO+RzksmF2lA==","shasum":"5d1e325e4902a245b336d0038de1d4a97de2ee88","tarball":"https://registry.npmjs.org/@agnostack/custom-integration-reference/-/custom-integration-reference-1.0.2.tgz","fileCount":23,"unpackedSize":29256,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBHHFCXbZx1rxXly5Y6SrNBcNP+hp+PLtbONKVrtkdOyAiEA4ec4V38+RagGS95YcSLol8ZAKKBtn/sNtAbD5cS3qWM="}]},"_npmUser":{"name":"agrohs","email":"adam@agnostack.com"},"directories":{},"maintainers":[{"name":"agrohs","email":"adam@agnostack.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/custom-integration-reference_1.0.2_1770129677901_0.4664595743746358"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-03T13:08:34.820Z","modified":"2026-02-03T14:41:18.192Z","1.0.0":"2026-02-03T13:08:35.032Z","1.0.1":"2026-02-03T14:35:50.126Z","1.0.2":"2026-02-03T14:41:18.061Z"},"bugs":{"url":"https://github.com/agnostack/custom-integration-reference/issues"},"author":{"name":"agnoStack Dev","email":"developers@agnostack.com","url":"https://agnostack.com"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/agnostack/custom-integration-reference#readme","repository":{"type":"git","url":"git+https://github.com/agnostack/custom-integration-reference.git"},"description":"Reference implementation for agnoStack custom integration.","maintainers":[{"name":"agrohs","email":"adam@agnostack.com"}],"readme":"# agnoStack - Example Custom Integration Provider 🚀\n\nThis repository contains the Example implementation of the agnoStack Custom Integration Provider.\n\n---\n\n## Prerequisites/Tools\n\n- pnpm (or similar package manager)\n- Node.js (v22 or higher)\n- AWS SAM (`brew install aws-sam-cli`)\n- nvm (optional)\n\n### OPTIONAL (if using nvm)\n```bash\nnvm install\n```\n\n## Install repo dependencies\n\n```bash\npnpm install\n```\n\n## Generate new keypair\n\nRun `pnpm run generate-keypair` (executes the `generate-keypair.js` script) to create a new keypair for your setup.\n\nCapture the values for `PUBLIC_KEY` as `PRIVATE_KEY` from the generated output to use in step below.\n\nNOTE: You will also need the generated `PUBLIC_KEY` value to enter into agnoStack in the Custom Integration Provider settings into the \"`Public Key`\" field.\n\n\n# AWS Deployment\n\n## Environment Variables Reference\n\n| Variable | AWS Service | Path |\n|----------|-------------|------|\n| `PUBLIC_KEY` | SSM Parameter Store | `/agnostack-custom-integration-example/PUBLIC_KEY` |\n| `SHARED_SECRET` | SSM Parameter Store | `/agnostack-custom-integration-example/SHARED_SECRET` |\n| `PRIVATE_KEY` | Secrets Manager | `/agnostack-custom-integration-example/SECURE` |\n\n## Add initial parameters to AWS SSM (Parameter Store)\n\n### OPTIONAL (if AWS CLI is not installed)\n```bash\nbrew install aws-sam-cli\n```\n\nExecute the following commands to add parameters to AWS SSM (Parameter Store) - or can manually add via AWS Console:\n\n```bash\naws ssm put-parameter \\\n  --name \"/agnostack-custom-integration-example/PUBLIC_KEY\" \\\n  --value \"XXXXXXXXX\" \\\n  --type \"String\" \\\n  --overwrite\n```\n\nIn addition to the above, you will need to add a TEMPORARY  `SHARED_SECRET` parameter to AWS SSM (Parameter Store) as well (we will update this value below after you have completed the agnoStack Custom Integration Provider configuration).\n\n```bash\naws ssm put-parameter \\\n  --name \"/agnostack-custom-integration-example/SHARED_SECRET\" \\\n  --value \"TEMP\" \\\n  --type \"String\" \\\n  --overwrite\n```\n\n## Add SECRET parameter to AWS Secrets Manager\n\nExecute the following commands to populate a `SECURE` parameter within AWS Secrets Manager - or can manually add via AWS Console:\n\nBe sure to enter the `PRIVATE_KEY` values in the JSON format shown below from the earlier step above.\n\n```bash\naws secretsmanager create-secret \\\n  --name \"/agnostack-custom-integration-example/SECURE\" \\\n  --secret-string '{ \"PRIVATE_KEY\": \"XXXXXXXXX\" }'\n```\n\n## Deploy\n\nThis will generate a CloudFormation template and deploy the Lambda function to AWS and return a `URL` to access the Lambda function for use within the agnoStack Custom Integration Provider settings.\n\n```bash\npnpm release:prod\n```\n\n## agnoStack Custom Integration Provider Configuration\n\nUse this `URL` from the step above within in the agnoStack Custom Integration Provider settings along with your `PUBLIC_KEY` from the earlier step.\n\nagnoStack will generate a `SHARED_SECRET` for you to use within the Custom Integration Provider settings. Click the copy button to copy the `SHARED_SECRET` and capture it locally for later use.\n\nContinue through the agnoStack configuration screens and click \"Activate\" to save your configuration.\n\n## Update parameters in AWS SSM (Parameter Store)\n\nPopulate the `SHARED_SECRET` parameter in AWS SSM (Parameter Store) with the real value from the step above generate by agnoStack (replacing `XXXXXXXXX` below).\n\n```bash\naws ssm put-parameter \\\n  --name \"/agnostack-custom-integration-example/SHARED_SECRET\" \\\n  --value \"XXXXXXXXX\" \\\n  --type \"String\" \\\n  --overwrite\n```\n\n## Redeploy the app to ensure the latest AWS SSM parameter values are referenced by the Lambda function(s)\n\n```bash\npnpm release:prod\n```\n\nNOTE: any time you update an AWS SSM parameter and/or Secrets Manager parameter, you must redeploy to ensure the latest values are referenced.\n\n---\n\n# Local Development\n\n## Configure local environment variables\n\nCopy `.env.local.example` and rename as `.env.local`. Ensure required environment variables from the example file are present.\n\n```bash\nPUBLIC_KEY: obtained from `pnpm run generate-keypair` above\n\nPRIVATE_KEY: obtain from `pnpm run generate-keypair` above\n\nSHARED_SECRET: obtain from agnoStack configuraiton panel (Custom Integration Provider settings)\n```\n\n## Run the local development server\n\n```bash\npnpm watch\n```\n\nNOTE: this will run your local project via SAM offline AND also generate an ngrok URL that you can then enter into agnoStack in the Custom Integration Provider settings in the \"`API Path`\" field.\n\n---\n\n## REPOSITORY & CODE USAGE\n\nThis repository is provided for reference purposes only and is intended to help customers and partners integrate with agnoStack.\n\nIt is not a supported SDK and does not grant rights to agnoStack trademarks, branding, or proprietary services.\n\nUse of this code is permitted only in connection with an agnoStack integration.\nSee the LICENSE file for full terms.\n","readmeFilename":"README.md"}