Projects
albert.resources.projects
ProjectClass
The access-control class of a project, governing who can see it.
PRIVATE: visible only to the project's ACL members (the default).SHARED: visible more broadly across the organization.CONFIDENTIAL: most tightly controlled standard access.RESTRICTED: limited access; returned for existing tenant projects and only usable when the tenant has the restricted project class feature enabled.
Attributes:
| Name | Type | Description |
|---|---|---|
SHARED |
|
|
CONFIDENTIAL |
|
|
PRIVATE |
|
|
RESTRICTED |
|
State
The lifecycle state of a project.
The set of allowed states is customizable per tenant via the entity-status
API; these are the platform defaults. Unknown tenant-specific values are
tolerated as plain strings on Project.state.
Attributes:
| Name | Type | Description |
|---|---|---|
NOT_STARTED |
|
|
ACTIVE |
|
|
CLOSED_SUCCESS |
|
|
CLOSED_ARCHIVED |
|
|
JUST_STARTED |
|
|
IN_PROGRESS |
|
TaskConfig
Bases: BaseAlbertModel
Default task settings applied when tasks are created within a project.
Show JSON schema:
{
"description": "Default task settings applied when tasks are created within a project.",
"properties": {
"dataTemplateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the data template tasks default to.",
"title": "Datatemplateid"
},
"workflowId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the workflow tasks default to.",
"title": "Workflowid"
},
"defaultTaskName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default name applied to new tasks.",
"title": "Defaulttaskname"
},
"target": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default target for the configured tasks.",
"title": "Target"
},
"hidden": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether this configuration is hidden in the UI (``\"true\"`` or ``\"false\"``).",
"title": "Hidden"
}
},
"title": "TaskConfig",
"type": "object"
}
Fields:
-
data_template_id(str | None) -
workflow_id(str | None) -
default_task_name(str | None) -
target(str | None) -
hidden(str | None)
hidden
hidden: str | None = None
Whether this configuration is hidden in the UI ("true" or "false").
GridDefault
Project
Bases: BaseSessionResource
A project in Albert: the top-level container for a piece of R&D work.
A project groups the formulations designed for the work, its Worksheet (1:1
with the project), the Tasks run against it, and the inventory it references.
Create and manage projects through the
ProjectCollection (client.projects).
Only description is required to build one; it doubles as the project's
display name. The id and state are assigned by Albert and are read
only from the client's perspective.
Example
Show JSON schema:
{
"$defs": {
"ACL": {
"description": "A single access rule for a user.",
"properties": {
"id": {
"description": "The id of the user for which this ACL applies",
"title": "Id",
"type": "string"
},
"fgc": {
"anyOf": [
{
"$ref": "#/$defs/AccessControlLevel"
},
{
"type": "null"
}
],
"default": null,
"description": "The Fine-Grain Control Level"
}
},
"required": [
"id"
],
"title": "ACL",
"type": "object"
},
"AccessControlLevel": {
"description": "Access control levels you can grant users.",
"enum": [
"ProjectOwner",
"ProjectEditor",
"ProjectViewer",
"ProjectAllTask",
"ProjectStrictViewer",
"ProjectPropertyTask",
"InventoryOwner",
"InventoryViewer",
"CustomTemplateOwner",
"CustomTemplateViewer",
"CASFullAccess"
],
"title": "AccessControlLevel",
"type": "string"
},
"AuditFields": {
"description": "The audit fields for a resource",
"properties": {
"by": {
"default": null,
"title": "By",
"type": "string"
},
"byName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Byname"
},
"at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "At"
}
},
"title": "AuditFields",
"type": "object"
},
"EntityLink": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
}
},
"required": [
"id"
],
"title": "EntityLink",
"type": "object"
},
"EntityLinkWithName": {
"description": "EntityLink that includes the name field in serialization.",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
}
},
"required": [
"id"
],
"title": "EntityLinkWithName",
"type": "object"
},
"GridDefault": {
"description": "The default grid view shown for a project.\n\n- ``PD``: the Property Data grid.\n- ``WKS``: the Worksheet grid.",
"enum": [
"PD",
"WKS"
],
"title": "GridDefault",
"type": "string"
},
"Location": {
"description": "A physical lab or site location in Albert.\n\nLocations are referenced by Tasks and Inventory Items to record where an\nactivity is performed or where a material lives, and each Location can hold\none or more Storage Locations\n([`StorageLocation`][albert.resources.storage_locations.StorageLocation]). Managed\nthrough [`LocationCollection`][albert.collections.locations.LocationCollection].\n\n!!! example\n ```python\n from albert.resources.locations import Location\n location = Location(\n name=\"Boston Lab\",\n latitude=42.3601,\n longitude=-71.0589,\n address=\"1 Main St\",\n country=\"US\",\n )\n ```",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null,
"description": "The status of the resource, optional."
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null,
"description": "Audit fields for the creation of the resource, optional."
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null,
"description": "Audit fields for the update of the resource, optional."
},
"name": {
"description": "The human-readable name of the location.",
"title": "Name",
"type": "string"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The Albert ID of the location. Assigned by Albert and populated once the location has been created or retrieved.",
"title": "Albertid"
},
"latitude": {
"description": "The latitude of the location, in decimal degrees.",
"title": "Latitude",
"type": "number"
},
"longitude": {
"description": "The longitude of the location, in decimal degrees.",
"title": "Longitude",
"type": "number"
},
"address": {
"description": "The street address of the location.",
"title": "Address",
"type": "string"
},
"country": {
"anyOf": [
{
"maxLength": 2,
"minLength": 2,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The two-letter country code of the location (for example, ``\"US\"``).",
"title": "Country"
}
},
"required": [
"name",
"latitude",
"longitude",
"address"
],
"title": "Location",
"type": "object"
},
"ProjectClass": {
"description": "The access-control class of a project, governing who can see it.\n\n- ``PRIVATE``: visible only to the project's ACL members (the default).\n- ``SHARED``: visible more broadly across the organization.\n- ``CONFIDENTIAL``: most tightly controlled standard access.\n- ``RESTRICTED``: limited access; returned for existing tenant projects and\n only usable when the tenant has the restricted project class feature enabled.",
"enum": [
"shared",
"confidential",
"private",
"restricted"
],
"title": "ProjectClass",
"type": "string"
},
"State": {
"description": "The lifecycle state of a project.\n\nThe set of allowed states is customizable per tenant via the entity-status\nAPI; these are the platform defaults. Unknown tenant-specific values are\ntolerated as plain strings on [`Project.state`][albert.resources.projects.Project.state].",
"enum": [
"Not Started",
"Active",
"Closed - Success",
"Closed - Archived",
"Just Started",
"In Progress"
],
"title": "State",
"type": "string"
},
"Status": {
"description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n The resource is fully operational and visible in normal operations.\nINACTIVE : str\n The resource is hidden from normal operations and disabled from use.",
"enum": [
"active",
"inactive"
],
"title": "Status",
"type": "string"
},
"TaskConfig": {
"description": "Default task settings applied when tasks are created within a project.",
"properties": {
"dataTemplateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the data template tasks default to.",
"title": "Datatemplateid"
},
"workflowId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the workflow tasks default to.",
"title": "Workflowid"
},
"defaultTaskName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default name applied to new tasks.",
"title": "Defaulttaskname"
},
"target": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default target for the configured tasks.",
"title": "Target"
},
"hidden": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether this configuration is hidden in the UI (``\"true\"`` or ``\"false\"``).",
"title": "Hidden"
}
},
"title": "TaskConfig",
"type": "object"
}
},
"description": "A project in Albert: the top-level container for a piece of R&D work.\n\nA project groups the formulations designed for the work, its Worksheet (1:1\nwith the project), the Tasks run against it, and the inventory it references.\nCreate and manage projects through the\n[`ProjectCollection`][albert.collections.projects.ProjectCollection] (``client.projects``).\n\nOnly ``description`` is required to build one; it doubles as the project's\ndisplay name. The ``id`` and ``state`` are assigned by Albert and are read\nonly from the client's perspective.\n\n!!! example\n ```python\n from albert import Albert\n from albert.resources.projects import Project, ProjectClass\n client = Albert()\n project = client.projects.create(\n project=Project(\n description=\"Weatherproof Coatings 2026\",\n project_class=ProjectClass.SHARED,\n )\n )\n project.id\n # 'PRO123'\n ```",
"properties": {
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Read-only status string returned by Albert.",
"title": "Status"
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null,
"description": "Audit fields for the creation of the resource, optional."
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null,
"description": "Audit fields for the update of the resource, optional."
},
"description": {
"description": "Human-readable project name/description (1-2000 characters). Also serves as the project's display name.",
"maxLength": 2000,
"minLength": 1,
"title": "Description",
"type": "string"
},
"Locations": {
"anyOf": [
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/Location"
},
{
"$ref": "#/$defs/EntityLink"
}
]
},
"maxItems": 20,
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The locations the project is associated with. Optional.",
"title": "Locations"
},
"class": {
"anyOf": [
{
"$ref": "#/$defs/ProjectClass"
},
{
"type": "null"
}
],
"default": "private",
"description": "Access-control class (private, shared, or confidential). Defaults to private."
},
"prefix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional prefix used when naming entities within the project.",
"title": "Prefix"
},
"appEngg": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Inventory Ids to be added as application engineering",
"title": "Appengg"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The Albert Project ID (format ``PRO...``). Assigned by Albert and present once the project has been created or retrieved.",
"title": "Albertid"
},
"ACL": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ACL"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Access-control entries controlling who can access the project. Optional.",
"title": "Acl"
},
"oldApiParams": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Read-only. Do not use.",
"title": "Oldapiparams"
},
"TaskConfig": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/TaskConfig"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Default task settings applied to tasks created within the project.",
"title": "Taskconfig"
},
"grid": {
"anyOf": [
{
"$ref": "#/$defs/GridDefault"
},
{
"type": "null"
}
],
"default": null,
"description": "The default grid view (Property Data or Worksheet) shown for the project."
},
"Metadata": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
},
{
"$ref": "#/$defs/EntityLinkWithName"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/EntityLinkWithName"
},
{
"$ref": "#/$defs/EntityLink"
}
]
},
"type": "array"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.",
"title": "Metadata"
},
"state": {
"anyOf": [
{
"$ref": "#/$defs/State"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The project's lifecycle state. Read only on create; can be changed via [`update`][albert.collections.projects.ProjectCollection.update]. Tenant-customized states outside [`State`][albert.resources.projects.State] parse as plain strings.",
"title": "State"
}
},
"required": [
"description"
],
"title": "Project",
"type": "object"
}
Fields:
-
created(AuditFields | None) -
updated(AuditFields | None) -
description(str) -
locations(list[SerializeAsEntityLink[Location]] | None) -
project_class(ProjectClass | None) -
prefix(str | None) -
application_engineering_inventory_ids(list[str] | None) -
id(ProjectId | None) -
acl(list[ACL] | None) -
old_api_params(dict | None) -
task_config(list[TaskConfig] | None) -
grid(GridDefault | None) -
metadata(dict[str, MetadataItem] | None) -
status(str | None) -
state(State | str | None)
Validators:
-
_bind_session -
validate_status→status
description
description: str
Human-readable project name/description (1-2000 characters). Also serves as the project's display name.
locations
The locations the project is associated with. Optional.
project_class
project_class: ProjectClass | None = ProjectClass.PRIVATE
Access-control class (private, shared, or confidential). Defaults to private.
application_engineering_inventory_ids
Inventory Ids to be added as application engineering
id
id: ProjectId | None = None
The Albert Project ID (format PRO...). Assigned by Albert and present once the project has been created or retrieved.
task_config
task_config: list[TaskConfig] | None
Default task settings applied to tasks created within the project.
grid
grid: GridDefault | None = None
The default grid view (Property Data or Worksheet) shown for the project.
metadata
Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.
state
smart
smart: SmartProject | None
Return the project-bound Smart Projects interface for this project.
Use this property for Smart Projects workflows: adding targets and
building smart datasets scoped to the project. For standalone target or
smart dataset creation, use
TargetCollection or
SmartDatasetCollection
instead.
Returns:
| Type | Description |
|---|---|
SmartProject or None
|
The |
validate_status
Somehow, some statuses are capitalized in the API response. This ensures they are always lowercase.
Source code in src/albert/resources/projects.py
ProjectSearchItem
Bases: BaseAlbertModel, HydrationMixin[Project]
A lightweight (partial) project returned by project search.
Returned by search,
this carries only summary fields for fast listing. Use its hydration support
(or fetch by id via
get_by_id) to obtain
the full Project.
Show JSON schema:
{
"$defs": {
"EntityLinkWithName": {
"description": "EntityLink that includes the name field in serialization.",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
}
},
"required": [
"id"
],
"title": "EntityLinkWithName",
"type": "object"
}
},
"description": "A lightweight (partial) project returned by project search.\n\nReturned by [`search`][albert.collections.projects.ProjectCollection.search],\nthis carries only summary fields for fast listing. Use its hydration support\n(or fetch by ``id`` via\n[`get_by_id`][albert.collections.projects.ProjectCollection.get_by_id]) to obtain\nthe full [`Project`][albert.resources.projects.Project].",
"properties": {
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The Albert Project ID (format ``PRO...``).",
"title": "Albertid"
},
"description": {
"description": "The project's name/description.",
"maxLength": 2000,
"minLength": 1,
"title": "Description",
"type": "string"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Read-only status string returned by Albert.",
"title": "Status"
},
"application": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/EntityLinkWithName"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Application tags associated with the project.",
"title": "Application"
},
"technology": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/EntityLinkWithName"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Technology tags associated with the project.",
"title": "Technology"
}
},
"required": [
"description"
],
"title": "ProjectSearchItem",
"type": "object"
}
Fields:
-
_collection(BaseCollection | None) -
id(ProjectId | None) -
description(str) -
status(str | None) -
application(list[EntityLinkWithName] | None) -
technology(list[EntityLinkWithName] | None)
application
application: list[EntityLinkWithName] | None = None
Application tags associated with the project.
technology
technology: list[EntityLinkWithName] | None = None
Technology tags associated with the project.
DocumentSearchItem
Bases: BaseAlbertModel
A document (attachment) search result linked to a project.
Returned by
document_search. Each
item describes an attachment's metadata rather than its file contents.
Show JSON schema:
{
"description": "A document (attachment) search result linked to a project.\n\nReturned by\n[`document_search`][albert.collections.projects.ProjectCollection.document_search]. Each\nitem describes an attachment's metadata rather than its file contents.",
"properties": {
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The Albert Attachment ID (format ``ATT...``).",
"title": "Albertid"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The document's file name.",
"title": "Name"
},
"mimeType": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The document's MIME type (e.g. ``application/pdf``).",
"title": "Mimetype"
},
"fileSize": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The document's size in bytes.",
"title": "Filesize"
},
"projectId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the project the document is linked to.",
"title": "Projectid"
},
"key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Storage key for the document.",
"title": "Key"
},
"source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Source system or origin of the document.",
"title": "Source"
},
"createdBy": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the user who uploaded the document.",
"title": "Createdby"
},
"createdByName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of the user who uploaded the document.",
"title": "Createdbyname"
},
"createdAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Timestamp when the document was created.",
"title": "Createdat"
}
},
"title": "DocumentSearchItem",
"type": "object"
}
Fields:
-
id(AttachmentId | None) -
name(str | None) -
mime_type(str | None) -
file_size(int | None) -
project_id(str | None) -
key(str | None) -
source(str | None) -
created_by(str | None) -
created_by_name(str | None) -
created_at(str | None)
ReferenceFormulaType
Standard reference formula designations for reformulation projects.
In Albert reformulation workflows, reference formulas serve as comparison points across the project lifecycle. They are displayed as reference columns in Target Overview and reference bars in Compare Formula Data, allowing chemists to benchmark experimental results against known baselines without re-entering data or duplicating records.
ORIGINAL: "Original" (in-app: "The formula you're iterating from"). The starting-point commercial or benchmark formula being reformulated or replaced.LEADING: "Leading" (in-app: "A top experimental candidate"). A promising intermediate candidate tracked against project goals.FINAL: "Final" (in-app: "The project's selected outcome formula"). The formula selected as the successful outcome of the project.CONTROL: "Control" (in-app: "A designated experimental control"). A formula used as an experimental baseline or control.OTHER: "Other" (in-app: "Any other reference"). Any other reference designation at user discretion. Custom label strings may also be supplied in place of this enum member when calling reference formula methods.
Attributes:
| Name | Type | Description |
|---|---|---|
ORIGINAL |
|
|
LEADING |
|
|
FINAL |
|
|
CONTROL |
|
|
OTHER |
|
ReferenceFormula
Bases: BaseAlbertModel
A formula designated as a comparison point within an Albert project.
Reference formulas provide baseline comparison points for chemists working on
reformulation projects. Once designated and synced with the project dataset via
update_dataset,
reference formulas surface in two primary reporting and analysis interfaces:
- Target Overview: reference formulas appear as visually distinct reference columns alongside experimental formulas, populating historical performance results against project targets automatically without re-entering data.
- Compare Formula Data: reference formulas appear as distinct reference bars plotted against target ranges, allowing chemists to see how experimental iterations compare to the commercial formula being replicated or competitor baselines being benchmarked.
Albert supports two product designation flows:
- Worksheet flow (in-project): designated via
set_reference_formula. Applies to a formula already within this project's worksheet and is scoped to a specific sheet. The ingredients and process design sections of the column are locked by default upon designation in the worksheet to prevent accidental edits. - Target Overview flow (cross-project linked): designated via
link_reference_formula. Links an existing formula from another project that the caller has view/read access to. Albert includes the source project's full dataset in the project's smart dataset scope to power inverse design machine learning (Breakthrough), while surfacing only the specifically designated reference formula columns in the Target Overview and Compare Data UI.
Removing a designation via
delete_reference_formula
reverts the column or unlinks the view without deleting the underlying formula or its
experimental history.
Example
from albert import Albert
from albert.resources.projects import ReferenceFormulaType
client = Albert()
rf = client.projects.set_reference_formula(
project_id="PRO123",
sheet_id="WKS456",
inventory_id="INV123-001",
reference_formula_type=ReferenceFormulaType.ORIGINAL,
)
rf.reference_formula_type
# 'Original'
Show JSON schema:
{
"description": "A formula designated as a comparison point within an Albert project.\n\nReference formulas provide baseline comparison points for chemists working on\nreformulation projects. Once designated and synced with the project dataset via\n[`update_dataset`][albert.resources.smart_projects.SmartProject.update_dataset],\nreference formulas surface in two primary reporting and analysis interfaces:\n\n* **Target Overview**: reference formulas appear as visually distinct reference\n columns alongside experimental formulas, populating historical performance\n results against project targets automatically without re-entering data.\n* **Compare Formula Data**: reference formulas appear as distinct reference bars\n plotted against target ranges, allowing chemists to see how experimental\n iterations compare to the commercial formula being replicated or competitor\n baselines being benchmarked.\n\nAlbert supports two product designation flows:\n\n1. **Worksheet flow (in-project)**: designated via\n [`set_reference_formula`][albert.collections.projects.ProjectCollection.set_reference_formula].\n Applies to a formula already within this project's worksheet and is scoped to a\n specific sheet. The ingredients and process design sections of the column are\n locked by default upon designation in the worksheet to prevent accidental edits.\n2. **Target Overview flow (cross-project linked)**: designated via\n [`link_reference_formula`][albert.collections.projects.ProjectCollection.link_reference_formula].\n Links an existing formula from another project that the caller has view/read access\n to. Albert includes the source project's full dataset in the project's smart dataset\n scope to power inverse design machine learning (Breakthrough), while surfacing only\n the specifically designated reference formula columns in the Target Overview and\n Compare Data UI.\n\nRemoving a designation via\n[`delete_reference_formula`][albert.collections.projects.ProjectCollection.delete_reference_formula]\nreverts the column or unlinks the view without deleting the underlying formula or its\nexperimental history.\n\n!!! example\n ```python\n from albert import Albert\n from albert.resources.projects import ReferenceFormulaType\n\n client = Albert()\n rf = client.projects.set_reference_formula(\n project_id=\"PRO123\",\n sheet_id=\"WKS456\",\n inventory_id=\"INV123-001\",\n reference_formula_type=ReferenceFormulaType.ORIGINAL,\n )\n rf.reference_formula_type\n # 'Original'\n ```",
"properties": {
"projectId": {
"description": "The ID of the project holding this reference formula designation.",
"title": "Projectid",
"type": "string"
},
"inventoryId": {
"description": "The inventory ID of the designated formula (format ``INV...``).",
"title": "Inventoryid",
"type": "string"
},
"inventoryName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display name of the designated formula inventory item, when populated.",
"title": "Inventoryname"
},
"referenceFormulaType": {
"description": "The role this formula plays on the project (e.g. Original, Leading, Final, Control, or a custom string).",
"title": "Referenceformulatype",
"type": "string"
},
"isExternalFormula": {
"description": "True when the formula originates from another project and is linked into this project.",
"title": "Isexternalformula",
"type": "boolean"
},
"parentProjectId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The project where the formula originates. Equals ``project_id`` for in-project formulas.",
"title": "Parentprojectid"
},
"worksheetId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The worksheet sheet ID where an in-project formula is designated. None for cross-project linked formulas.",
"title": "Worksheetid"
}
},
"required": [
"projectId",
"inventoryId",
"referenceFormulaType",
"isExternalFormula"
],
"title": "ReferenceFormula",
"type": "object"
}
Fields:
-
project_id(ProjectId) -
inventory_id(InventoryId) -
inventory_name(str | None) -
reference_formula_type(str) -
is_external_formula(bool) -
parent_project_id(ProjectId | None) -
sheet_id(WorksheetId | None)
inventory_name
inventory_name: str | None = None
The display name of the designated formula inventory item, when populated.
reference_formula_type
reference_formula_type: str
The role this formula plays on the project (e.g. Original, Leading, Final, Control, or a custom string).
is_external_formula
is_external_formula: bool
True when the formula originates from another project and is linked into this project.
parent_project_id
parent_project_id: ProjectId | None = None
The project where the formula originates. Equals project_id for in-project formulas.
sheet_id
sheet_id: WorksheetId | None = None
The worksheet sheet ID where an in-project formula is designated. None for cross-project linked formulas.