-
Notifications
You must be signed in to change notification settings - Fork 6
[CON-3106] feat(fastSpring): New provider #543
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Fullstack-Hero
wants to merge
5
commits into
amp-labs:main
Choose a base branch
from
Fullstack-Hero:fastSpring
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 3 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
60de6cb
Privide guide for proxy connector
Fullstack-Hero ba6b060
Added images with docs
Fullstack-Hero a60397d
Added write+delete support
Fullstack-Hero e86cc65
Rm end urls
Fullstack-Hero f09836b
Rm connect FastSpring in ampersand section
Fullstack-Hero File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,121 @@ | ||
| --- | ||
| title: "FastSpring" | ||
| --- | ||
|
|
||
| ## What's supported | ||
|
|
||
| ### Supported actions | ||
|
|
||
| This connector supports: | ||
|
|
||
| - [Read Actions](/read-actions), including list reads with pagination and optional time windows for event objects. | ||
| - [Write Actions](/write-actions) (create, update, and delete where the FastSpring API allows—there is no separate Delete action in the catalog; destructive operations such as product delete or subscription cancel are part of Write). | ||
| - [Proxy Actions](/proxy-actions), using the base URL `https://api.fastspring.com`. | ||
| - Subscribe Actions are not currently supported. | ||
|
|
||
| ### Supported objects | ||
|
|
||
| export const Check = () => <span>✅</span> | ||
| export const Cross = () => <span>🚫</span> | ||
|
|
||
| <div style={{ width: '100%', overflowX: 'auto', display: 'block' }}> | ||
| <table style={{ width: '100%', minWidth: '100%', tableLayout: 'fixed', textAlign: 'center', borderCollapse: 'collapse', display: 'table' }}> | ||
| <thead style={{ display: 'table-header-group', width: '100%' }}> | ||
| <tr style={{ display: 'table-row', width: '100%' }}> | ||
| <th style={{ textAlign: 'left', width: '44%' }}>Object</th> | ||
| <th style={{ width: '14%' }}>Read</th> | ||
| <th style={{ width: '14%' }}>Write</th> | ||
| <th style={{ width: '14%' }}>Subscribe</th> | ||
| </tr> | ||
| </thead> | ||
| <tbody style={{ display: 'table-row-group', width: '100%' }}> | ||
| <tr style={{ display: 'table-row' }}><td style={{ textAlign: 'left' }}><a href="https://developer.fastspring.com/reference/list-all-accounts">accounts</a></td><td><Check /></td><td><Check /></td><td><Cross /></td></tr> | ||
| <tr style={{ display: 'table-row' }}><td style={{ textAlign: 'left' }}><a href="https://developer.fastspring.com/reference/list-all-orders">orders</a></td><td><Check /></td><td><Check /></td><td><Cross /></td></tr> | ||
| <tr style={{ display: 'table-row' }}><td style={{ textAlign: 'left' }}><a href="https://developer.fastspring.com/reference/list-all-product-paths">products</a></td><td><Check /></td><td><Check /></td><td><Cross /></td></tr> | ||
| <tr style={{ display: 'table-row' }}><td style={{ textAlign: 'left' }}><a href="https://developer.fastspring.com/reference/list-all-subscriptions">subscriptions</a></td><td><Check /></td><td><Check /></td><td><Cross /></td></tr> | ||
| <tr style={{ display: 'table-row' }}><td style={{ textAlign: 'left' }}><a href="https://developer.fastspring.com/reference/list-all-processed-events">events-processed</a></td><td><Check /></td><td><Cross /></td><td><Cross /></td></tr> | ||
| <tr style={{ display: 'table-row' }}><td style={{ textAlign: 'left' }}><a href="https://developer.fastspring.com/reference/list-all-unprocessed-events">events-unprocessed</a></td><td><Check /></td><td><Cross /></td><td><Cross /></td></tr> | ||
| </tbody> | ||
| </table> | ||
| </div> | ||
|
|
||
| ### Notes and limitations | ||
|
|
||
| - **Write support** `accounts` supports create and update. `products` supports create, update, and delete. `orders` and `subscriptions` support **update**; subscription delete maps to cancel in FastSpring. Single-record operations only (no bulk write). | ||
| - **Read behavior**: List endpoints may return object arrays or ID-only lists; the connector normalizes rows into a consistent shape. Event lists (`events-processed`, `events-unprocessed`) support optional date ranges via read parameters where the API allows. | ||
|
|
||
| ### Example integration | ||
|
|
||
| To define an integration for FastSpring, create a manifest file (`amp.yaml`). For a complete example, visit our [samples repo on GitHub](https://github.com/amp-labs/samples/blob/main/fastSpring/amp.yaml). | ||
|
|
||
| ```yaml | ||
| # amp.yaml | ||
| specVersion: 1.0.0 | ||
| integrations: | ||
| - name: fastSpringIntegration | ||
| displayName: My FastSpring Integration | ||
| provider: fastSpring | ||
| proxy: | ||
| enabled: true | ||
| ``` | ||
|
|
||
| Enable **read** and/or **write** in your manifest when those actions are configured for your integration. | ||
|
|
||
| ## Before you get started | ||
|
|
||
| To integrate **FastSpring** with **Ampersand**, you need a [FastSpring](https://fastspring.com/) account and **API credentials** (API username and password) from FastSpring. | ||
|
|
||
| **Provider App is not required.** FastSpring is a Basic Auth provider—you do not create or configure a Provider App in Ampersand (those are used for OAuth 2.0 Authorization Code and similar flows). You only need the API username and password from FastSpring. | ||
|
|
||
| FastSpring documents API access in [Getting started with your API](https://developer.fastspring.com/reference/getting-started-with-your-api), including the base URL, Basic authentication, required headers, and credential generation. | ||
|
|
||
| ### Creating FastSpring API credentials | ||
|
|
||
| Per FastSpring’s documentation: | ||
|
|
||
| 1. In the FastSpring application, open **Developer Tools**. | ||
|
|
||
|  | ||
|
|
||
| 2. Go to **APIs** → **API Credentials**. | ||
|
|
||
|  | ||
|  | ||
|
|
||
| 3. Use **Create** to generate credentials for the first time. FastSpring shows the username and password; the password is available only at creation time—store it securely. | ||
|
|
||
| ### Connect FastSpring in Ampersand | ||
|
|
||
| Because FastSpring uses Basic Auth, **no Provider App setup is required**. Use your FastSpring API username and password wherever your project collects provider credentials—for example: | ||
|
|
||
| 1. Log in to the [Ampersand Dashboard](https://dashboard.withampersand.com). | ||
|
|
||
| 2. Select the project where you want to use FastSpring. | ||
|
|
||
| 3. When configuring or installing the FastSpring integration, enter the **API username** and **API password** from FastSpring (the same values used for Basic Auth). | ||
|
|
||
| Your end users typically supply these through the [InstallIntegration](/embeddable-ui-components#install-integration) component when they connect their FastSpring account. You do **not** need to register a Provider App for OAuth before doing this. | ||
|
|
||
| ## Using the connector | ||
|
|
||
| This connector uses **Basic Auth** (username and password), the same credential shape as other Basic providers in the catalog. **A Provider App is not required**—Provider Apps are only needed for providers that use OAuth 2.0 Authorization Code (or similar) flows, not for Basic Auth. | ||
|
|
||
| To start integrating with FastSpring: | ||
|
|
||
| - Create a manifest file; see [Example integration](#example-integration). | ||
| - Deploy it using the [amp CLI](/cli/overview). | ||
| - If you are using Read Actions, create a [destination](/destinations). | ||
| - Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. Your customers enter their FastSpring API username and password when they connect their account. | ||
| - Start using the connector: | ||
| - If your integration has [Read Actions](/read-actions), scheduled reads will sync data according to your configuration. | ||
| - If your integration has [Write Actions](/write-actions), you can call the Write API for supported objects (including deletes such as product removal or subscription cancel, where supported). | ||
| - If your integration has [Proxy Actions](/proxy-actions) enabled, you can make Proxy API calls to `https://api.fastspring.com`. | ||
|
|
||
| ## Upstream API documentation | ||
|
|
||
| - [FastSpring — Getting started with your API](https://developer.fastspring.com/reference/getting-started-with-your-api) | ||
| - [Accounts](https://developer.fastspring.com/reference/list-all-accounts) | ||
|
Fullstack-Hero marked this conversation as resolved.
Outdated
|
||
| - [Orders](https://developer.fastspring.com/reference/list-all-orders) | ||
| - [Products](https://developer.fastspring.com/reference/create-or-update-products) | ||
| - [Subscriptions](https://developer.fastspring.com/reference/list-all-subscriptions) | ||
| - [Events](https://developer.fastspring.com/reference/events) | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.