Projects
One of the most important concepts is that of Projects.
A project is a locally grouping of components, typically brought together to allow us to solve a specific use-case.
Projects are owned by an organization, so the first thing we will typically do is create, or find an existing, organization.
from kodexa.platform import KodexaClient
client = KodexaClient()
client.organizations.list(query='Philip').to_df()
client | id | uuid | created_on | updated_on | name | slug | public_access | description | has_image | |
---|---|---|---|---|---|---|---|---|---|---|
0 | <kodexa.platform.client.KodexaClient object at... | f89d51f5-4905-4bd9-ab06-6ba61f3e7891 | 5630a279802b4fa69fc4f675a6ac37f6 | 2022-12-14 00:48:03.264000+00:00 | 2022-12-14 00:48:03.264000+00:00 | Philips World | philips-world | False | None | False |
philips_organization = client.organizations.find_by_slug('philips-world')
philips_organization.projects.list().to_df()
id | uuid | created_on | updated_on | organization | name | description | metadata | show_tasks | show_thumbnails | has_image | show_search | project_template_ref | memory | document_statuses | attribute_statuses | client | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 6d33f7b9-f072-4593-988e-15865999e9b5 | 06fe6eb8a18b4ad4a9369896a0ee8f03 | 2022-12-20 17:27:16.462000+00:00 | 2022-12-20 17:27:16.462000+00:00 | {'id': 'f89d51f5-4905-4bd9-ab06-6ba61f3e7891',... | BARRO54812A | A project for extracting data from invoices | None | False | True | False | False | kodexa/azure-invoice-project-template:1.0.0 | {'recent_filters': {}} | [] | [] | <kodexa.platform.client.KodexaClient object at... |
1 | 4dce973d-0420-413f-9027-1d83606d9085 | f1f240ac7fb74ce09a7094583cfd5dcf | 2022-12-14 00:48:28.868000+00:00 | 2022-12-14 00:48:28.868000+00:00 | {'id': 'f89d51f5-4905-4bd9-ab06-6ba61f3e7891',... | Dae Similar Formats | A basic project outline with process and train... | None | False | True | False | False | kodexa/empty-project:6.0.0-3594945030 | {'recent_filters': {}} | [] | [] | <kodexa.platform.client.KodexaClient object at... |
We can find a project by its name or ID, then we will be able to work with the project endpoint
my_project = philips_organization.projects.find_by_name('Dae Similar Formats')
my_project.id
'4dce973d-0420-413f-9027-1d83606d9085'
Note that when we get a project from the client we will end up with an "Endpoint" model which means we can actually interact with the object to work with the server.
Associated Components¶
A project is a logical grouping of components, those components have accessors from the project endpoint instance that allow us to work with them.
For example lets get a list of the document stores:
my_project.document_stores.to_df()
ref | template | schema_version | org_slug | slug | type | name | description | version | deployed | ... | metadata | store_type | searchable | store_purpose | view_options | view_presets | show_thumbnails | showSearch | allowDataEditing | client | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | philips-world/4dce973d-0420-413f-9027-1d83606d... | False | 1 | philips-world | 4dce973d-0420-413f-9027-1d83606d9085-processing | store | Processing | A processing store for project Dae Similar For... | 1.0.0 | 2022-12-14 00:48:28.937000+00:00 | ... | {} | DOCUMENT | False | OPERATIONAL | {'show_last_event': True, 'show_extension': Fa... | [] | None | None | False | <kodexa.platform.client.KodexaClient object at... |
1 | philips-world/4dce973d-0420-413f-9027-1d83606d... | False | 1 | philips-world | 4dce973d-0420-413f-9027-1d83606d9085-training | store | Training | A training store for project Dae Similar Formats | 1.0.0 | 2022-12-14 00:48:33.509000+00:00 | ... | None | DOCUMENT | False | TRAINING | {'show_last_event': True, 'show_extension': Fa... | [] | None | None | False | <kodexa.platform.client.KodexaClient object at... |
2 rows × 29 columns