Types of Project Firefly apps#
A Project Firefly Application is a serverless application that extends Adobe Product APIs. These applications can be one of two kinds: headless or headful. Each of these types is described in more detail in the sections that follow.
In a headless application, the application consists of a set of serverless actions and/or sequences deployed to Runtime, Adobe's serverless platform.
A headful application is a Single Page Application (SPA) with a full-fledged user interface (UI) served from the out-of-the-box Content Delivery Network. This type of application calls Adobe Product APIs directly from the client when applicable. When there is a strong need to orchestrate Adobe Product API calls with 3rd party API calls, or with Adobe Identity Management System for authentication purposes, you can deploy serverless actions and/or sequences using Runtime.
JAMStack: Anatomy of a Project Firefly App#
Project Firefly apps that are Single Page Applications with a full-fledged UI should follow the JAMStack Architecture.
The three main components of Project Firefly apps are:
- Adobe Product APIs, exposed to external developers and consumers through Adobe I/O API Gateway.
- React-Spectrum, Adobe's front-end framework which applies Adobe's Design System to React-based components.
The CLI comes out-of-the-box with the following capabilities:
- Authentication to Adobe's Identity Management System
- Certificate management
- Configuration management
- Interactions with Adobe Developer Console
- Interactions with Runtime, Adobe's serverless platform
- Lifecycle management for Project Firefly
Project Firefly Generators#
Generators can be used to create:
- A headless application
- A full-fledged UI SPA that deploys into Experience Cloud Unified shell
- Runtime serverless actions extending specific Adobe APIs
Main SDK library#
The main SDK library bundles smaller, reusable SDK libraries serving a variety of use-cases:
Integration with Adobe APIs#
- The Adobe Analytics SDK library provides a client for Adobe Analytics 2.0 API.
- The Adobe Target SDK library provides a client for Adobe Target 1.0 API.
- The Adobe Campaign Standard SDK library provides a client for Adobe Campaign Standard API.
Integration with Adobe's Identity Management System#
The Adobe IMS SDK library provides authentication management capabilities to Adobe's Identity Management Services, for both of the following scenarios:
Integration with additional out-of-the-box services#
- The Files SDK provides a file system-like abstraction on top of an out-of-the-box cloud storage to store large, temporary files.
- The State SDK provides a state-like abstraction on top of an out-of-the-box cloud-based key-value store.
Technical framework for developers#
This framework must be used when contributing to the Project Firefly SDK. It is also recommended to use it when building a Firefly application.
Core SDK library#
The Core SDK library enables developers with the following technical capabilities:
The Configuration SDK library allows management of persistent and environment variable configuration.
It enables developers to perform the following actions on behalf of their Project Firefly application credentials:
- Deploy the web assets of their Project Firefly application to the out-of-the-box CDN.
- Use the out-of-the-box cloud storage through the Files SDK.
- Use the out-of-the-box key-value store through the State SDK.
The out-of-the-box CI/CD support for Project Firefly Applications consists in:
- Github Actions to setup the CLI and use it to perform actions such as application testing, build and deployment.
- Github Workflows to orchestrate the Github Actions upon specific events triggered against the application repository.
- Github Secrets to store application secrets required for the execution of the Github Workflows against specific environments.