Custom Fields
albert.collections.custom_fields
AlbertPaginator
AlbertPaginator(
*,
path: str,
mode: PaginationMode,
session: AlbertSession,
deserialize: Callable[
[Iterable[dict]], Iterable[ItemType]
],
params: dict[str, str] | None = None,
)
Bases: Iterator[ItemType]
Helper class for pagination through Albert endpoints.
Two pagination modes are possible:
- Offset-based via by the offset query parameter
- Key-based via by the startKey query parameter and 'lastKey' response field
A custom deserialize function is provided when additional logic is required to load
the raw items returned by the search listing, e.g., making additional Albert API calls.
Source code in src/albert/core/pagination.py
AlbertSession
AlbertSession(
*,
base_url: str,
token: str | None = None,
auth_manager: AlbertClientCredentials
| AlbertSSOClient
| None = None,
retries: int | None = None,
)
Bases: Session
A session that has a base URL, which is prefixed to all request URLs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
base_url
|
str
|
The base URL to prefix to all relative request paths (e.g., "https://app.albertinvent.com"). |
required |
token
|
str | None
|
A static JWT token for authentication. Ignored if |
None
|
auth_manager
|
AlbertClientCredentials | AlbertSSOClient
|
An authentication manager used to dynamically fetch and refresh tokens.
If provided, it overrides |
None
|
retries
|
int
|
The number of automatic retries on failed requests (default is 3). |
None
|
Methods:
| Name | Description |
|---|---|
request |
|
Source code in src/albert/core/session.py
request
Source code in src/albert/core/session.py
BaseCollection
BaseCollection(*, session: AlbertSession)
BaseCollection is the base class for all collection classes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session
|
AlbertSession
|
The Albert API Session instance. |
required |
Source code in src/albert/collections/base.py
CustomField
Bases: BaseResource
A custom field for an entity in Albert.
Returns:
| Type | Description |
|---|---|
CustomField
|
A CustomField that can be used to attach Metadata to an entity in Albert. |
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
The name of the custom field. Cannot contain spaces. |
id |
str | None
|
The Albert ID of the custom field. |
field_type |
FieldType
|
The type of the custom field. Allowed values are |
display_name |
str
|
The display name of the custom field. Can contain spaces. |
searchable |
bool | None
|
Whether the custom field is searchable, optional. Defaults to False. |
service |
ServiceType
|
The service type the custom field is associated with. |
hidden |
bool | None
|
Whether the custom field is hidden, optional. Defaults to False. |
lookup_column |
bool | None
|
Whether the custom field is a lookup column, optional. Defaults to False. Only allowed for inventories. |
lookup_row |
bool | None
|
Whether the custom field is a lookup row, optional. Defaults to False. Only allowed for formulas in inventories. |
category |
FieldCategory | None
|
The category of the custom field, optional. Defaults to None. Required for list fields. Allowed values are |
min |
int | None
|
The minimum value of the custom field, optional. Defaults to None. |
max |
int | None
|
The maximum value of the custom field, optional. Defaults to None. |
entity_categories |
list[EntityCategory] | None
|
The entity categories of the custom field, optional. Defaults to None. Required for lookup row fields. Allowed values are |
ui_components |
list[UIComponent] | None
|
The UI components available to the custom field, optional. Defaults to None. Allowed values are |
Methods:
| Name | Description |
|---|---|
confirm_field_compatability |
|
display_name
class-attribute
instance-attribute
display_name: str = Field(default=None, alias='labelName')
entity_categories
class-attribute
instance-attribute
entity_categories: list[EntityCategory] | None = Field(
default=None, alias="entityCategory"
)
lookup_column
class-attribute
instance-attribute
lookup_column: bool | None = Field(
default=None, alias="lkpColumn"
)
lookup_row
class-attribute
instance-attribute
lookup_row: bool | None = Field(
default=None, alias="lkpRow"
)
searchable
class-attribute
instance-attribute
searchable: bool | None = Field(
default=None, alias="search"
)
ui_components
class-attribute
instance-attribute
ui_components: list[UIComponent] | None = Field(
default=None, alias="ui_components"
)
confirm_field_compatability
confirm_field_compatability() -> CustomField
CustomFieldCollection
CustomFieldCollection(*, session: AlbertSession)
Bases: BaseCollection
CustomFieldCollection is a collection class for managing CustomField entities in the Albert platform.
This collection provides methods to create, update, retrieve, and list custom fields.
CustomFields allow you to store custom metadata on a Project, InventoryItem, User, BaseTask (Tasks), and Lot.
The FieldType used determines the shape of the metadata field's value.
If the FieldType is LIST, then the FieldCategory defines the ACL needed to add new allowed items to the given list:
FieldCategory.USER_DEFINED: allows general users to add itemsFieldCategory.BUSINESS_DEFINED: only admins can add new items to the list
Example
# Creating some custom fields
from albert import Albert
from albert.resources.custom_fields import CustomField, FieldCategory, FieldType, ServiceType
from albert.resources.lists import ListItem
from albert.resources.projects import Project
# Initialize the Albert client
client = Albert()
# Define the custom fields
stage_gate_field = CustomField(
name="stage_gate_status",
display_name="Stage Gate",
field_type=FieldType.LIST,
service=ServiceType.PROJECTS,
min=1,
max=1,
category=FieldCategory.BUSINESS_DEFINED # Defined by the business
)
justification_field = CustomField(
name="justification",
display_name="Project Justification",
field_type=FieldType.STRING,
service=ServiceType.PROJECTS,
)
# Create the custom fields
client.custom_fields.create(custom_field=stage_gate_field)
client.custom_fields.create(custom_field=justification_field)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session
|
AlbertSession
|
The Albert session instance. |
required |
Methods:
| Name | Description |
|---|---|
create |
Create a new CustomField item. |
get_all |
Get all CustomField entities with optional filters. |
get_by_id |
Get a CustomField item by its ID. |
get_by_name |
Get a CustomField item by its name. |
update |
Update a CustomField item. |
Source code in src/albert/collections/custom_fields.py
create
create(*, custom_field: CustomField) -> CustomField
Create a new CustomField item.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
custom_field
|
CustomField
|
The CustomField item to create. |
required |
Returns:
| Type | Description |
|---|---|
CustomField
|
The created CustomField item with its ID. |
Source code in src/albert/collections/custom_fields.py
get_all
get_all(
*,
name: str | None = None,
service: ServiceType | None = None,
lookup_column: bool | None = None,
lookup_row: bool | None = None,
) -> Iterator[CustomField]
Get all CustomField entities with optional filters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str | None
|
The name of the field, by default None |
None
|
service
|
ServiceType | None
|
The related service the field is in, by default None |
None
|
lookup_column
|
bool | None
|
Whether the field relates to a lookup column, by default None |
None
|
lookup_row
|
bool | None
|
Whether the field relates to a lookup row, by default None |
None
|
Yields:
| Type | Description |
|---|---|
Iterator[CustomField]
|
Returns an iterator of CustomField entities matching the search criteria. |
Source code in src/albert/collections/custom_fields.py
get_by_id
get_by_id(*, id: str) -> CustomField
Get a CustomField item by its ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id
|
str
|
The ID of the CustomField item. |
required |
Returns:
| Type | Description |
|---|---|
CustomField
|
The CustomField item. |
Source code in src/albert/collections/custom_fields.py
get_by_name
get_by_name(
*, name: str, service: ServiceType | None = None
) -> CustomField | None
Get a CustomField item by its name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The name of the CustomField item. |
required |
service
|
ServiceType | None
|
The service the field relates to, by default None |
None
|
Returns:
| Type | Description |
|---|---|
CustomField | None
|
The CustomField item, or None if not found. |
Source code in src/albert/collections/custom_fields.py
update
update(*, custom_field: CustomField) -> CustomField
Update a CustomField item.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
custom_field
|
CustomField
|
The updated CustomField item. The ID must be set and match the Field you want to update. |
required |
Returns:
| Type | Description |
|---|---|
CustomField
|
The updated CustomField item as registered in Albert. |
Source code in src/albert/collections/custom_fields.py
PaginationMode
ServiceType
The service type the custom field is associated with