Custom Fields
albert.collections.custom_fields
AlbertSession
AlbertSession(
*,
base_url: str,
token: str | None = None,
client_credentials: ClientCredentials | 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 requests. (e.g., "https://sandbox.albertinvent.com") |
required |
retries
|
int
|
The number of retries for failed requests. Defaults to 3. |
None
|
client_credentials
|
ClientCredentials | None
|
The client credentials for programmatic authentication. Optional if token is provided. |
None
|
token
|
str | None
|
The JWT token for authentication. Optional if client credentials are provided. |
None
|
Methods:
Name | Description |
---|---|
request |
|
Source code in src/albert/session.py
request
Source code in src/albert/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.project 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_by_id |
Get a CustomField item by its ID. |
get_by_name |
Get a CustomField item by its name. |
list |
Searches for CustomField items based on the provided parameters. |
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_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
list
list(
*,
name: str | None = None,
service: ServiceType | None = None,
lookup_column: bool | None = None,
lookup_row: bool | None = None,
) -> Iterator[CustomField]
Searches for CustomField items based on the provided parameters.
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 items matching the search criteria. |
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
ServiceType
The service type the custom field is associated with