- Resource Organization: Container for related GenAI application resources
- Project Context: Applications are scoped within projects for isolation
- Access Management: Application-level permissions and access control
- Monitoring Coordination: Centralized monitoring and alerting configuration
- Lifecycle Management: Coordinated creation, updates, and deletion of resources
- Creation: Create application with unique name within a project
- Configuration: Set up datasets, evaluators, and monitoring
- Operations: Publish logs, monitor performance, manage alerts
- Maintenance: Update configurations and resources
- Cleanup: Delete application when no longer needed
Example
Applications are permanent containers - once created, the name cannot be changed.
Deleting an application removes all contained resources and configurations.
Consider the organizational structure carefully before creating applications.
id
name
created_at
updated_at
created_by
updated_by
project
classmethod get_by_id()
Retrieve an application by its unique identifier. Fetches an application from the Fiddler platform using its UUID. This is the most direct way to retrieve an application when you know its ID.Parameters
The unique identifier (UUID) of the application to retrieve.
Can be provided as a UUID object or string representation.
Returns
The application instance with all metadata and configuration.
Raises
- NotFound – If no application exists with the specified ID.
- ApiError – If there’s an error communicating with the Fiddler API.
Example
This method makes an API call to fetch the latest application state from the server.
The returned application instance reflects the current state in Fiddler.
classmethod get_by_name()
Retrieve an application by name within a project. Finds and returns an application using its name within the specified project. This is useful when you know the application name and project but not its UUID. Application names are unique within a project, making this a reliable lookup method.Parameters
The name of the application to retrieve. Application names are unique
within a project and are case-sensitive.
The UUID of the project containing the application.
Can be provided as a UUID object or string representation.
Returns
The application instance matching the specified name.
Raises
- NotFound – If no application exists with the specified name in the project.
- ApiError – If there’s an error communicating with the Fiddler API.
Example
Application names are case-sensitive and must match exactly. Use this method
when you have a known application name from configuration or user input.
classmethod list()
List all applications in a project. Retrieves all applications that the current user has access to within the specified project. Returns an iterator for memory efficiency when dealing with many applications.Parameters
The UUID of the project to list applications from.
Can be provided as a UUID object or string representation.
Yields
Application – Application instances for all accessible applications in the project.
Raises
ApiError – If there’s an error communicating with the Fiddler API.Returns
Iterator[Application]
Example
This method returns an iterator for memory efficiency. Convert to a list
with list(Application.list(project_id)) if you need to iterate multiple times or get
the total count. The iterator fetches applications lazily from the API.
classmethod create()
Create a new application in a project. Creates a new application within the specified project on the Fiddler platform. The application must have a unique name within the project.Parameters
Application name, must be unique within the project.
The UUID of the project to create the application in.
Can be provided as a UUID object or string representation.
Returns
The newly created application instance with server-assigned fields.
Raises
- Conflict – If an application with the same name already exists in the project.
- ValidationError – If the application configuration is invalid (e.g., invalid name format).
- ApiError – If there’s an error communicating with the Fiddler API.
Example
After successful creation, the application instance is returned with
server-assigned metadata. The application is immediately available
for adding datasets, evaluators, and other resources.
classmethod get_or_create()
Get an existing application by name or create a new one if it doesn’t exist. This is a convenience method that attempts to retrieve an application by name within a project, and if not found, creates a new application with that name. Useful for idempotent application setup in automation scripts and deployment pipelines.Parameters
The name of the application to retrieve or create.
The UUID of the project to search/create the application in.
Can be provided as a UUID object or string representation.
Returns
Either the existing application with the specified name,
or a newly created application if none existed.
Raises
- ValidationError – If the application name format is invalid.
- ApiError – If there’s an error communicating with the Fiddler API.
Example
This method is idempotent - calling it multiple times with the same name
and project_id will return the same application. It logs when creating a new
application for visibility in automation scenarios.