# BOSA Core SDK

Through BOSA SDK developers can create BOSA compliant applications. It consists of two main modules and supports two programming languages: TypeScript and Python.

## BOSA Core Libraries

BOSA Core is the foundational library providing essential modules. This guide will help you install and get started with BOSA Core utilities and functions. At this moment, developers can use these functionalities:

1\. Plugin Architecture

2\. Logger (PII Protection)

3\. Authentication&#x20;

4\. Telemetry

## Getting Started

Developers can utilize BOSA Core Libraries to build backend applications. You can use bosa-core by adding bosa-core in the development configuration. Please check out  [this link](https://github.com/GDP-ADMIN/bosa-sdk/tree/main/python/examples) for more concrete examples.

<details>

<summary>Prerequisites</summary>

To add bosa-core to your project, please ensure you already have:

* Python <3.13, >=3.11
* [Poetry](https://python-poetry.org/) (recommended) or [pip](https://pypi.org/project/pip/)

</details>

### Installation

BOSA Core package is available on Pypi, can be installed via:

```sh
# Using Poetry
poetry add bosa-core-binary[all]

# Using pip
pip install bosa-core-binary[all]
```

#### Installing with Specific Dependencies

BOSA Core provides a flexible installation process by allowing you to include only the dependencies you need through the use of extras. This can help minimize unnecessary dependencies in your application. The available extras are:

* `plugin`: Plugin configuration support with environment variables.
* `telemetry`: Tracing with OpenTelemetry and/or Sentry.
* `authentication`: Database-backed authentication system with SQLAlchemy.
* `logger`: Enhanced logging capabilities with PII anonymization.
* `cache`: Redis caching functionality.

To install BOSA Core with specific dependencies, specify the extras in your installation command:

```sh
# Example using Poetry, only adding cache and logger:
poetry add bosa-core-binary[cache,logger]

# Example using pip, only adding authentication and telemetry:
pip install bosa-core-binary[authentication,telemetry]
```

To include all optional dependencies, use the `all` extra as shown in the Installation section.
