Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions CONTRIBUTING/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,7 @@ consensus around project direction and issue solutions within issue threads

![The button to Log and issue](/CONTRIBUTING/images/Log_an_issue.png)

## Contributor License Agreement

All third-party contributions to this project must be accompanied by a signed contributor
license agreement. This gives Adobe permission to redistribute your contributions
as part of the project. [Sign our CLA](https://opensource.adobe.com/cla.html). You
only need to submit an Adobe CLA one time, so if you have submitted one previously,
you are good to go!

## Code Of Conduct

This project adheres to the [Adobe code of conduct](../CODE_OF_CONDUCT.md). By participating,
you are expected to uphold this code. Please report unacceptable behavior to
[Grp-opensourceoffice@adobe.com](mailto:Grp-opensourceoffice@adobe.com).

## Code Reviews

Expand Down
2 changes: 1 addition & 1 deletion src/pages/contributors.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"total":9,"offset":0,"limit":9,"data":[{"page":"/config","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4"],"lastUpdated":"4/27/2026"},{"page":"/guides/","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4","https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/48109457?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/57922?v=4"],"lastUpdated":"4/27/2026"},{"page":"/guides/get-started","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4","https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/393660?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/48109457?v=4"],"lastUpdated":"4/17/2026"},{"page":"/guides/sdks/","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/77717258?v=4"],"lastUpdated":"9/3/2025"},{"page":"/guides/support/","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4"],"lastUpdated":"1/9/2026"},{"page":"/guides/tutorials/","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/48109457?v=4","https://avatars.githubusercontent.com/u/77717258?v=4"],"lastUpdated":"4/10/2026"},{"page":"/guides/tutorials/automate-workflow","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4","https://avatars.githubusercontent.com/u/195011431?v=4"],"lastUpdated":"4/17/2026"},{"page":"/guides/tutorials/create-product-images-with-ff","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4","https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/393660?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/48109457?v=4"],"lastUpdated":"4/28/2026"},{"page":"/guides/tutorials/using-the-sdk","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/359935?v=4"],"lastUpdated":"4/10/2026"}],":type":"sheet"}
{"total":9,"offset":0,"limit":9,"data":[{"page":"/config","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4"],"lastUpdated":"4/27/2026"},{"page":"/guides/","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4","https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/48109457?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/57922?v=4"],"lastUpdated":"4/27/2026"},{"page":"/guides/get-started","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4","https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/393660?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/48109457?v=4"],"lastUpdated":"4/17/2026"},{"page":"/guides/sdks/","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/77717258?v=4"],"lastUpdated":"9/3/2025"},{"page":"/guides/support/","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4"],"lastUpdated":"1/9/2026"},{"page":"/guides/tutorials/","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/48109457?v=4","https://avatars.githubusercontent.com/u/77717258?v=4"],"lastUpdated":"4/10/2026"},{"page":"/guides/tutorials/automate-workflow","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/41382203?v=4"],"lastUpdated":"4/30/2026"},{"page":"/guides/tutorials/create-product-images-with-ff","avatars":["https://avatars.githubusercontent.com/u/41382203?v=4","https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/393660?v=4","https://avatars.githubusercontent.com/u/359935?v=4","https://avatars.githubusercontent.com/u/48109457?v=4"],"lastUpdated":"4/28/2026"},{"page":"/guides/tutorials/using-the-sdk","avatars":["https://avatars.githubusercontent.com/u/195011431?v=4","https://avatars.githubusercontent.com/u/77717258?v=4","https://avatars.githubusercontent.com/u/359935?v=4"],"lastUpdated":"4/10/2026"}],":type":"sheet"}
41 changes: 22 additions & 19 deletions src/pages/guides/tutorials/automate-workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,25 +40,6 @@ Before we begin this tutorial, run the following in a secure terminal:

<CodeBlock slots="heading, code" repeat="2" languages="Python, JavaScript" />

#### JavaScript

```bash
mkdir firefly-services-content-workflow-tutorial
cd firefly-services-content-workflow-tutorial
npm init --y
npm install axios qs
touch index.js
```

#### Python

```bash
mkdir firefly-services-content-workflow-tutorial
cd firefly-services-content-workflow-tutorial
python -m pip install requests
touch main.py
```

### Pre-signed URLs

To interact with Adobe's Firefly Services APIs, you'll need to generate pre-signed URLs. These URLs grant temporary access to your storage resources without exposing your credentials. For more details about pre-signed URLs, see [AWS Sharing objects with presigned URLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html), or [Azure Storage resources using shared access signatures](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview).
Expand All @@ -71,6 +52,28 @@ In this tutorial, you will need:

Depending on your learning style, you may prefer to walk through this tutorial step-by-step or [jump immediately to the full source code](#full-example).

## Test content

This cob=n

```bash
curl --location 'https://image.adobe.io/sensei/cutout' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "x-api-key: $FIREFLY_SERVICES_CLIENT_ID" \
--header "Authorization: Bearer $FIREFLY_SERVICES_ACCESS_TOKEN" \
--data '{
"input":{
"href":"https://your-storage-bucket-name.blob.core.windows.net:443/container/input.jpeg?sv...&query=params...",
"storage":"azure"
},
"output":{
"href":"https://your-storage-bucket-name.blob.core.windows.net:443/container/output.jpeg?sv...&query=params...",
"storage":"azure"
}
}'
```

## Retrieve an access token

Open a secure terminal and `export` your **Client ID** and **Client Secret** as environment variables so that your later commands can access them:
Expand Down