@friehub/blueprint 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/.github/workflows/ci.yml +122 -0
  2. package/.github/workflows/publish.yml +24 -0
  3. package/README.md +266 -0
  4. package/adapters/analytics/amplitude.yaml +44 -0
  5. package/adapters/analytics/mixpanel.yaml +47 -0
  6. package/adapters/analytics/segment.yaml +40 -0
  7. package/adapters/auth/auth0.yaml +56 -0
  8. package/adapters/auth/clerk.yaml +53 -0
  9. package/adapters/auth/supertokens.yaml +55 -0
  10. package/adapters/billing/paddle.yaml +57 -0
  11. package/adapters/billing/stripe.yaml +49 -0
  12. package/adapters/caching/memcached.yaml +28 -0
  13. package/adapters/caching/redis.yaml +37 -0
  14. package/adapters/chargebacks/chargebacks911.yaml +45 -0
  15. package/adapters/chargebacks/stripe.yaml +45 -0
  16. package/adapters/crm_leads/hubspot.yaml +43 -0
  17. package/adapters/crm_leads/salesforce.yaml +60 -0
  18. package/adapters/customer_support/intercom.yaml +44 -0
  19. package/adapters/customer_support/zendesk.yaml +51 -0
  20. package/adapters/donations/paypal.yaml +47 -0
  21. package/adapters/donations/stripe.yaml +47 -0
  22. package/adapters/emails/mailgun.yaml +47 -0
  23. package/adapters/emails/resend.yaml +43 -0
  24. package/adapters/emails/sendgrid.yaml +43 -0
  25. package/adapters/error_tracking/bugsnag.yaml +52 -0
  26. package/adapters/error_tracking/sentry.yaml +58 -0
  27. package/adapters/feature_flags/flagsmith.yaml +41 -0
  28. package/adapters/feature_flags/launchdarkly.yaml +41 -0
  29. package/adapters/feature_flags/unleash.yaml +41 -0
  30. package/adapters/fraud_detection/riskified.yaml +41 -0
  31. package/adapters/fraud_detection/sift.yaml +40 -0
  32. package/adapters/fulfillment/easyship.yaml +51 -0
  33. package/adapters/fulfillment/shipengine.yaml +51 -0
  34. package/adapters/incident_management/opsgenie.yaml +49 -0
  35. package/adapters/incident_management/pagerduty.yaml +48 -0
  36. package/adapters/invoicing/freshbooks.yaml +54 -0
  37. package/adapters/invoicing/stripe.yaml +47 -0
  38. package/adapters/ip_intelligence/ipinfo.yaml +37 -0
  39. package/adapters/ip_intelligence/maxmind.yaml +39 -0
  40. package/adapters/jobs/bullmq.yaml +54 -0
  41. package/adapters/jobs/temporal.yaml +53 -0
  42. package/adapters/kyc/jumio.yaml +54 -0
  43. package/adapters/kyc/onfido.yaml +53 -0
  44. package/adapters/media/cloudinary.yaml +48 -0
  45. package/adapters/media/imgix.yaml +47 -0
  46. package/adapters/notifications/firebase.yaml +45 -0
  47. package/adapters/notifications/novu.yaml +46 -0
  48. package/adapters/notifications/onesignal.yaml +45 -0
  49. package/adapters/payments/adyen.yaml +46 -0
  50. package/adapters/payments/paystack.yaml +45 -0
  51. package/adapters/payments/stripe.yaml +49 -0
  52. package/adapters/payouts/paypal.yaml +49 -0
  53. package/adapters/payouts/stripe.yaml +49 -0
  54. package/adapters/projects/asana.yaml +49 -0
  55. package/adapters/projects/jira.yaml +58 -0
  56. package/adapters/projects/linear.yaml +49 -0
  57. package/adapters/queues/bullmq.yaml +47 -0
  58. package/adapters/queues/rabbitmq.yaml +51 -0
  59. package/adapters/queues/sqs.yaml +45 -0
  60. package/adapters/rate_limiting/cloudflare.yaml +37 -0
  61. package/adapters/rate_limiting/upstash.yaml +35 -0
  62. package/adapters/search/algolia.yaml +39 -0
  63. package/adapters/search/meilisearch.yaml +39 -0
  64. package/adapters/search/typesense.yaml +42 -0
  65. package/adapters/shipping/easyship.yaml +45 -0
  66. package/adapters/shipping/shipengine.yaml +45 -0
  67. package/adapters/sms/twilio.yaml +41 -0
  68. package/adapters/sms/vonage.yaml +41 -0
  69. package/adapters/storage/azure-blob.yaml +42 -0
  70. package/adapters/storage/gcs.yaml +41 -0
  71. package/adapters/storage/s3.yaml +49 -0
  72. package/adapters/subscriptions/chargebee.yaml +32 -0
  73. package/adapters/subscriptions/stripe.yaml +37 -0
  74. package/adapters/tasks/asana.yaml +50 -0
  75. package/adapters/tasks/jira.yaml +59 -0
  76. package/adapters/tasks/linear.yaml +50 -0
  77. package/adapters/taxation/avalara.yaml +52 -0
  78. package/adapters/taxation/taxjar.yaml +48 -0
  79. package/adapters/trace_query/datadog.yaml +49 -0
  80. package/adapters/trace_query/honeycomb.yaml +42 -0
  81. package/adapters/trace_query/jaeger.yaml +42 -0
  82. package/adapters/web_analytics/google-analytics.yaml +42 -0
  83. package/adapters/web_analytics/plausible.yaml +34 -0
  84. package/adapters/web_analytics/posthog.yaml +34 -0
  85. package/adapters/webhooks/relay.yaml +35 -0
  86. package/adapters/webhooks/svix.yaml +41 -0
  87. package/blueprint.json +5 -0
  88. package/blueprinter_system_design.svg +139 -0
  89. package/catalog.json +37943 -0
  90. package/dist/cli/commands.js +362 -0
  91. package/dist/cli/help.js +211 -0
  92. package/dist/cli/render.js +109 -0
  93. package/dist/cli.js +69 -0
  94. package/dist/core/adapters/adapter-audit.test.js +85 -0
  95. package/dist/core/adapters/adapter.test.js +66 -0
  96. package/dist/core/adapters/index.js +4 -0
  97. package/dist/core/adapters/load.js +131 -0
  98. package/dist/core/adapters/resolve.js +78 -0
  99. package/dist/core/adapters/select.js +80 -0
  100. package/dist/core/adapters/types.js +1 -0
  101. package/dist/core/adapters/validate.js +121 -0
  102. package/dist/core/catalog.js +3 -0
  103. package/dist/core/collectors.js +126 -0
  104. package/dist/core/discovery.js +57 -0
  105. package/dist/core/edge-cases.test.js +147 -0
  106. package/dist/core/envelope.js +1 -0
  107. package/dist/core/graph.js +123 -0
  108. package/dist/core/graph.test.js +62 -0
  109. package/dist/core/implement.js +48 -0
  110. package/dist/core/index.js +9 -0
  111. package/dist/core/load-catalog.js +24 -0
  112. package/dist/core/parse-document.js +114 -0
  113. package/dist/core/parse-document.test.js +104 -0
  114. package/dist/core/parser.js +6 -0
  115. package/dist/core/parser.test.js +134 -0
  116. package/dist/core/resolve.js +119 -0
  117. package/dist/core/resolve.test.js +108 -0
  118. package/dist/core/scanner.js +163 -0
  119. package/dist/core/search.js +34 -0
  120. package/dist/core/search.test.js +43 -0
  121. package/dist/core/section-body.js +258 -0
  122. package/dist/core/sections.js +53 -0
  123. package/dist/core/verify-implement.test.js +123 -0
  124. package/dist/core/verify.js +156 -0
  125. package/dist/generators/engine.js +86 -0
  126. package/dist/generators/generator.test.js +112 -0
  127. package/dist/generators/index.js +3 -0
  128. package/dist/generators/prototype/index.js +242 -0
  129. package/dist/generators/render.js +146 -0
  130. package/dist/generators/types.js +124 -0
  131. package/dist/generators/typescript/helpers.js +125 -0
  132. package/dist/generators/typescript/index.js +206 -0
  133. package/dist/index.js +8 -0
  134. package/dist/mcp/server.js +202 -0
  135. package/dist/mcp/server.test.js +136 -0
  136. package/dist/utils/args.js +142 -0
  137. package/package.json +38 -0
  138. package/tsconfig.json +16 -0
@@ -0,0 +1,49 @@
1
+ name: stripe
2
+ module: payouts
3
+ version: 1.0.0
4
+ description: Stripe Connect payouts adapter
5
+
6
+ implements:
7
+ - createPayout
8
+ - getPayout
9
+ - listPayouts
10
+ - cancelPayout
11
+ - retryPayout
12
+ - schedulePayout
13
+ - getPayoutSchedule
14
+
15
+ does_not_implement: []
16
+
17
+ config:
18
+ required:
19
+ - name: api_key
20
+ type: string
21
+ description: Stripe secret API key
22
+ secret: true
23
+ - name: webhook_secret
24
+ type: string
25
+ description: Stripe webhook signing secret
26
+ secret: true
27
+ optional:
28
+ - name: api_version
29
+ type: string
30
+ default: "2023-10-16"
31
+ description: Stripe API version
32
+
33
+ dependencies:
34
+ - module: payments
35
+ purpose: Access payment data for payouts
36
+ required: true
37
+ - module: ledger
38
+ purpose: Track payout ledger entries
39
+ required: true
40
+ - module: notifications
41
+ purpose: Send payout notifications
42
+ required: false
43
+ - module: audit_log
44
+ purpose: Log payout events
45
+ required: false
46
+
47
+ metadata:
48
+ provider_url: https://stripe.com/connect
49
+ docs_url: https://stripe.com/docs/connect
@@ -0,0 +1,49 @@
1
+ name: asana
2
+ module: projects
3
+ version: 1.0.0
4
+ description: Asana project management adapter
5
+
6
+ implements:
7
+ - createProject
8
+ - getProject
9
+ - listProjects
10
+ - updateProject
11
+ - archiveProject
12
+ - unarchiveProject
13
+ - addProjectMember
14
+ - removeProjectMember
15
+ - changeProjectOwner
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: access_token
22
+ type: string
23
+ description: Asana personal access token
24
+ secret: true
25
+ optional:
26
+ - name: workspace_id
27
+ type: string
28
+ description: Default workspace ID
29
+ - name: project_gid
30
+ type: string
31
+ description: Default project GID
32
+
33
+ dependencies:
34
+ - module: workspaces
35
+ purpose: Get workspace data
36
+ required: true
37
+ - module: users
38
+ purpose: Get user data for membership
39
+ required: true
40
+ - module: notifications
41
+ purpose: Send project notifications
42
+ required: false
43
+ - module: audit_log
44
+ purpose: Log project events
45
+ required: false
46
+
47
+ metadata:
48
+ provider_url: https://asana.com
49
+ docs_url: https://developers.asana.com
@@ -0,0 +1,58 @@
1
+ name: jira
2
+ module: projects
3
+ version: 1.0.0
4
+ description: Jira project management adapter
5
+
6
+ implements:
7
+ - createProject
8
+ - getProject
9
+ - listProjects
10
+ - updateProject
11
+ - archiveProject
12
+ - unarchiveProject
13
+ - addProjectMember
14
+ - removeProjectMember
15
+ - changeProjectOwner
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: base_url
22
+ type: string
23
+ description: Jira instance URL
24
+ secret: false
25
+ - name: email
26
+ type: string
27
+ description: Jira admin email
28
+ secret: false
29
+ - name: api_token
30
+ type: string
31
+ description: Jira API token
32
+ secret: true
33
+ optional:
34
+ - name: project_key
35
+ type: string
36
+ description: Default project key
37
+ - name: cloud
38
+ type: boolean
39
+ default: true
40
+ description: Whether using Jira Cloud
41
+
42
+ dependencies:
43
+ - module: workspaces
44
+ purpose: Get workspace data
45
+ required: true
46
+ - module: users
47
+ purpose: Get user data for membership
48
+ required: true
49
+ - module: notifications
50
+ purpose: Send project notifications
51
+ required: false
52
+ - module: audit_log
53
+ purpose: Log project events
54
+ required: false
55
+
56
+ metadata:
57
+ provider_url: https://www.atlassian.com/software/jira
58
+ docs_url: https://developer.atlassian.com/cloud/jira/platform
@@ -0,0 +1,49 @@
1
+ name: linear
2
+ module: projects
3
+ version: 1.0.0
4
+ description: Linear project management adapter
5
+
6
+ implements:
7
+ - createProject
8
+ - getProject
9
+ - listProjects
10
+ - updateProject
11
+ - archiveProject
12
+ - unarchiveProject
13
+ - addProjectMember
14
+ - removeProjectMember
15
+ - changeProjectOwner
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: api_key
22
+ type: string
23
+ description: Linear API key
24
+ secret: true
25
+ optional:
26
+ - name: team_id
27
+ type: string
28
+ description: Default team ID
29
+ - name: organization_id
30
+ type: string
31
+ description: Linear organization ID
32
+
33
+ dependencies:
34
+ - module: workspaces
35
+ purpose: Get workspace data
36
+ required: true
37
+ - module: users
38
+ purpose: Get user data for membership
39
+ required: true
40
+ - module: notifications
41
+ purpose: Send project notifications
42
+ required: false
43
+ - module: audit_log
44
+ purpose: Log project events
45
+ required: false
46
+
47
+ metadata:
48
+ provider_url: https://linear.app
49
+ docs_url: https://developers.linear.app
@@ -0,0 +1,47 @@
1
+ name: bullmq
2
+ module: queues
3
+ version: 1.0.0
4
+ description: BullMQ queue adapter
5
+
6
+ implements:
7
+ - enqueue
8
+ - enqueueBulk
9
+ - scheduleJob
10
+ - cancelJob
11
+ - getJob
12
+ - getJobStatus
13
+ - retryJob
14
+ - getQueueStats
15
+ - purgeQueue
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: redis_url
22
+ type: string
23
+ description: Redis connection URL for BullMQ
24
+ secret: false
25
+ optional:
26
+ - name: redis_host
27
+ type: string
28
+ default: "localhost"
29
+ description: Redis host
30
+ - name: redis_port
31
+ type: integer
32
+ default: 6379
33
+ description: Redis port
34
+ - name: redis_password
35
+ type: string
36
+ description: Redis password
37
+ secret: true
38
+ - name: redis_db
39
+ type: integer
40
+ default: 0
41
+ description: Redis database number
42
+
43
+ dependencies: []
44
+
45
+ metadata:
46
+ provider_url: https://docs.bullmq.io
47
+ docs_url: https://docs.bullmq.io
@@ -0,0 +1,51 @@
1
+ name: rabbitmq
2
+ module: queues
3
+ version: 1.0.0
4
+ description: RabbitMQ queue adapter
5
+
6
+ implements:
7
+ - enqueue
8
+ - enqueueBulk
9
+ - scheduleJob
10
+ - cancelJob
11
+ - getJob
12
+ - getJobStatus
13
+ - retryJob
14
+ - getQueueStats
15
+ - purgeQueue
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: url
22
+ type: string
23
+ description: RabbitMQ connection URL
24
+ secret: false
25
+ optional:
26
+ - name: host
27
+ type: string
28
+ default: "localhost"
29
+ description: RabbitMQ host
30
+ - name: port
31
+ type: integer
32
+ default: 5672
33
+ description: RabbitMQ port
34
+ - name: username
35
+ type: string
36
+ default: "guest"
37
+ description: RabbitMQ username
38
+ - name: password
39
+ type: string
40
+ description: RabbitMQ password
41
+ secret: true
42
+ - name: vhost
43
+ type: string
44
+ default: "/"
45
+ description: RabbitMQ virtual host
46
+
47
+ dependencies: []
48
+
49
+ metadata:
50
+ provider_url: https://www.rabbitmq.com
51
+ docs_url: https://www.rabbitmq.com/documentation.html
@@ -0,0 +1,45 @@
1
+ name: sqs
2
+ module: queues
3
+ version: 1.0.0
4
+ description: AWS SQS queue adapter
5
+
6
+ implements:
7
+ - enqueue
8
+ - enqueueBulk
9
+ - scheduleJob
10
+ - cancelJob
11
+ - getJob
12
+ - getJobStatus
13
+ - retryJob
14
+ - getQueueStats
15
+ - purgeQueue
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: access_key_id
22
+ type: string
23
+ description: AWS access key ID
24
+ secret: false
25
+ - name: secret_access_key
26
+ type: string
27
+ description: AWS secret access key
28
+ secret: true
29
+ - name: region
30
+ type: string
31
+ description: AWS region
32
+ secret: false
33
+ optional:
34
+ - name: queue_url
35
+ type: string
36
+ description: Default SQS queue URL
37
+ - name: endpoint
38
+ type: string
39
+ description: Custom SQS endpoint URL
40
+
41
+ dependencies: []
42
+
43
+ metadata:
44
+ provider_url: https://aws.amazon.com/sqs
45
+ docs_url: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference
@@ -0,0 +1,37 @@
1
+ name: cloudflare
2
+ module: rate_limiting
3
+ version: 1.0.0
4
+ description: Cloudflare rate limiting adapter
5
+
6
+ implements:
7
+ - checkLimit
8
+ - consumeToken
9
+ - resetLimit
10
+ - getLimitStatus
11
+ - setCustomLimit
12
+
13
+ does_not_implement: []
14
+
15
+ config:
16
+ required:
17
+ - name: api_token
18
+ type: string
19
+ description: Cloudflare API token
20
+ secret: true
21
+ - name: zone_id
22
+ type: string
23
+ description: Cloudflare zone ID
24
+ secret: false
25
+ optional:
26
+ - name: account_id
27
+ type: string
28
+ description: Cloudflare account ID
29
+ - name: rule_id
30
+ type: string
31
+ description: Cloudflare rate limiting rule ID
32
+
33
+ dependencies: []
34
+
35
+ metadata:
36
+ provider_url: https://www.cloudflare.com
37
+ docs_url: https://developers.cloudflare.com
@@ -0,0 +1,35 @@
1
+ name: upstash
2
+ module: rate_limiting
3
+ version: 1.0.0
4
+ description: Upstash rate limiting adapter
5
+
6
+ implements:
7
+ - checkLimit
8
+ - consumeToken
9
+ - resetLimit
10
+ - getLimitStatus
11
+ - setCustomLimit
12
+
13
+ does_not_implement: []
14
+
15
+ config:
16
+ required:
17
+ - name: url
18
+ type: string
19
+ description: Upstash Redis URL
20
+ secret: false
21
+ - name: token
22
+ type: string
23
+ description: Upstash Redis token
24
+ secret: true
25
+ optional:
26
+ - name: enable_telemetry
27
+ type: boolean
28
+ default: true
29
+ description: Enable Upstash telemetry
30
+
31
+ dependencies: []
32
+
33
+ metadata:
34
+ provider_url: https://upstash.com
35
+ docs_url: https://docs.upstash.com
@@ -0,0 +1,39 @@
1
+ name: algolia
2
+ module: search
3
+ version: 1.0.0
4
+ description: Algolia search adapter
5
+
6
+ implements:
7
+ - indexDocument
8
+ - indexBulk
9
+ - removeDocument
10
+ - search
11
+ - suggest
12
+ - reindex
13
+ - getIndexStats
14
+ - createIndex
15
+ - deleteIndex
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: app_id
22
+ type: string
23
+ description: Algolia application ID
24
+ secret: false
25
+ - name: api_key
26
+ type: string
27
+ description: Algolia admin API key
28
+ secret: true
29
+ optional:
30
+ - name: search_api_key
31
+ type: string
32
+ description: Algolia search-only API key
33
+ secret: true
34
+
35
+ dependencies: []
36
+
37
+ metadata:
38
+ provider_url: https://www.algolia.com
39
+ docs_url: https://www.algolia.com/doc/api-reference
@@ -0,0 +1,39 @@
1
+ name: meilisearch
2
+ module: search
3
+ version: 1.0.0
4
+ description: Meilisearch search adapter
5
+
6
+ implements:
7
+ - indexDocument
8
+ - indexBulk
9
+ - removeDocument
10
+ - search
11
+ - suggest
12
+ - reindex
13
+ - getIndexStats
14
+ - createIndex
15
+ - deleteIndex
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: host
22
+ type: string
23
+ description: Meilisearch host URL
24
+ secret: false
25
+ - name: api_key
26
+ type: string
27
+ description: Meilisearch master key
28
+ secret: true
29
+ optional:
30
+ - name: tenant_token
31
+ type: string
32
+ description: Meilisearch tenant token
33
+ secret: true
34
+
35
+ dependencies: []
36
+
37
+ metadata:
38
+ provider_url: https://www.meilisearch.com
39
+ docs_url: https://docs.meilisearch.com
@@ -0,0 +1,42 @@
1
+ name: typesense
2
+ module: search
3
+ version: 1.0.0
4
+ description: Typesense search adapter
5
+
6
+ implements:
7
+ - indexDocument
8
+ - indexBulk
9
+ - removeDocument
10
+ - search
11
+ - suggest
12
+ - reindex
13
+ - getIndexStats
14
+ - createIndex
15
+ - deleteIndex
16
+
17
+ does_not_implement: []
18
+
19
+ config:
20
+ required:
21
+ - name: host
22
+ type: string
23
+ description: Typesense host URL
24
+ secret: false
25
+ - name: api_key
26
+ type: string
27
+ description: Typesense API key
28
+ secret: true
29
+ - name: collection
30
+ type: string
31
+ description: Default collection name
32
+ secret: false
33
+ optional:
34
+ - name: nearest_node_host
35
+ type: string
36
+ description: Nearest node host for geo-distributed search
37
+
38
+ dependencies: []
39
+
40
+ metadata:
41
+ provider_url: https://typesense.org
42
+ docs_url: https://typesense.org/docs
@@ -0,0 +1,45 @@
1
+ name: easyship
2
+ module: shipping
3
+ version: 1.0.0
4
+ description: Easyship shipping adapter
5
+
6
+ implements:
7
+ - getRates
8
+ - createShipment
9
+ - getShipment
10
+ - trackShipment
11
+ - cancelShipment
12
+ - createLabel
13
+ - getLabel
14
+ - validateAddress
15
+
16
+ does_not_implement: []
17
+
18
+ config:
19
+ required:
20
+ - name: api_key
21
+ type: string
22
+ description: Easyship API key
23
+ secret: true
24
+ optional:
25
+ - name: store_id
26
+ type: string
27
+ description: Easyship store ID
28
+ - name: currency
29
+ type: string
30
+ description: Default currency
31
+
32
+ dependencies:
33
+ - module: orders
34
+ purpose: Get order data for shipments
35
+ required: true
36
+ - module: notifications
37
+ purpose: Send tracking updates
38
+ required: false
39
+ - module: audit_log
40
+ purpose: Log shipping events
41
+ required: false
42
+
43
+ metadata:
44
+ provider_url: https://www.easyship.com
45
+ docs_url: https://docs.easyship.com
@@ -0,0 +1,45 @@
1
+ name: shipengine
2
+ module: shipping
3
+ version: 1.0.0
4
+ description: ShipEngine shipping adapter
5
+
6
+ implements:
7
+ - getRates
8
+ - createShipment
9
+ - getShipment
10
+ - trackShipment
11
+ - cancelShipment
12
+ - createLabel
13
+ - getLabel
14
+ - validateAddress
15
+
16
+ does_not_implement: []
17
+
18
+ config:
19
+ required:
20
+ - name: api_key
21
+ type: string
22
+ description: ShipEngine API key
23
+ secret: true
24
+ optional:
25
+ - name: carrier_id
26
+ type: string
27
+ description: Default carrier ID
28
+ - name: warehouse_id
29
+ type: string
30
+ description: Default warehouse ID
31
+
32
+ dependencies:
33
+ - module: orders
34
+ purpose: Get order data for shipments
35
+ required: true
36
+ - module: notifications
37
+ purpose: Send tracking updates
38
+ required: false
39
+ - module: audit_log
40
+ purpose: Log shipping events
41
+ required: false
42
+
43
+ metadata:
44
+ provider_url: https://www.shipengine.com
45
+ docs_url: https://www.shipengine.com/docs
@@ -0,0 +1,41 @@
1
+ name: twilio
2
+ module: sms
3
+ version: 1.0.0
4
+ description: Twilio SMS delivery adapter
5
+
6
+ implements:
7
+ - send
8
+ - sendBulk
9
+ - getDeliveryStatus
10
+ - getBalance
11
+ - lookupNumber
12
+
13
+ does_not_implement: []
14
+
15
+ config:
16
+ required:
17
+ - name: account_sid
18
+ type: string
19
+ description: Twilio account SID
20
+ secret: false
21
+ - name: auth_token
22
+ type: string
23
+ description: Twilio auth token
24
+ secret: true
25
+ - name: from_number
26
+ type: string
27
+ description: Twilio phone number
28
+ secret: false
29
+ optional:
30
+ - name: messaging_service_sid
31
+ type: string
32
+ description: Twilio messaging service SID
33
+
34
+ dependencies:
35
+ - module: audit_log
36
+ purpose: Log SMS delivery events
37
+ required: false
38
+
39
+ metadata:
40
+ provider_url: https://www.twilio.com
41
+ docs_url: https://www.twilio.com/docs