Metadata-Version: 2.4
Name: longlink
Version: 0.3.2
Summary: Python SDK for building and packaging LongLink Solutions.
Author-email: LongLink SAGL <info@longlink.ch>
License-Expression: MIT
Project-URL: Homepage, https://www.longlink.dev
Project-URL: Documentation, https://longlink.dev/docs
Project-URL: Repository, https://github.com/xLongLink/longlink.git
Project-URL: Bug Tracker, https://github.com/xLongLink/longlink/issues
Keywords: longlink,sdk,fastapi,sqlalchemy,pydantic,alembic
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiobotocore>=2.25.1
Requires-Dist: aiosqlite>=0.22.1
Requires-Dist: alembic>=1.19.1
Requires-Dist: asyncpg>=0.31.0
Requires-Dist: email-validator>=2.3.0
Requires-Dist: fastapi>=0.141.1
Requires-Dist: fsspec>=2026.4.0
Requires-Dist: lxml>=6.1.0
Requires-Dist: pydantic>=2.13.4
Requires-Dist: pydantic-settings>=2.15.0
Requires-Dist: pyjwt<3,>=2.10.1
Requires-Dist: s3fs>=2026.4.0
Requires-Dist: sqlalchemy>=2.0.51
Requires-Dist: sqlmodel>=0.0.39
Requires-Dist: starlette>=1.3.1
Requires-Dist: typer>=0.27.2
Requires-Dist: uvicorn>=0.52.1
Requires-Dist: watchfiles>=0.20
Dynamic: license-file

<div align="center">

<img src="https://www.longlink.dev/logo.svg" alt="LongLink logo" />

[![PyPI version](https://img.shields.io/pypi/v/longlink)](https://pypi.org/project/longlink/)
[![Python versions](https://img.shields.io/pypi/pyversions/longlink)](https://pypi.org/project/longlink/)
[![License](https://img.shields.io/github/license/xLongLink/longlink)](https://github.com/xLongLink/longlink/blob/main/LICENSE)

[Website](https://longlink.dev) &nbsp; - &nbsp; [Docs](https://longlink.dev/docs) &nbsp; - &nbsp; [Issues](https://github.com/xLongLink/longlink/issues)

</div>

<br/>

## Getting started

```bash
longlink init
```

> See [`xLongLink/sample`](https://github.com/xLongLink/sample) for a minimal LongLink Solution.

Inspect the XML component catalog and individual component references from the CLI:

```bash
longlink ui
longlink ui Button
```

<br/>

## Development

```bash
make sdk
```

This builds the SDK web bundle, initializes `sdk/dev` when absent, links the project
to the local SDK source, and starts its development service. Existing local edits are
preserved.

> Requirements: Python 3.12 or newer, `uv`, and Docker if you want to build an image. See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for more details.

<br/>

## Testing

```bash
uv sync --group dev
uv run pytest --cov --cov-report=term-missing
```

## Database TLS

Production PostgreSQL connections accept `LONGLINK_DATABASE_CERTIFICATE` containing a PEM CA certificate. When supplied, the SDK verifies both the server certificate chain and hostname, regardless of `LONGLINK_DATABASE_SSLMODE`.

Without a certificate, `LONGLINK_DATABASE_SSLMODE` defaults to `require` (encryption without server authentication). Standalone runtimes can select `verify-full` to use asyncpg's root-certificate configuration or `disable` for local PostgreSQL. Development and testing continue to use SQLite and ignore PostgreSQL settings.

<br/>
<br/>

---

<div align="center">
LongLink 2026

[License](./LICENSE) &nbsp; - &nbsp; [Contributing](./CONTRIBUTING.md) &nbsp; - &nbsp; [Code of Conduct](../CODE_OF_CONDUCT.md) &nbsp; - &nbsp; [Contact](mailto:info@longlink.dev)

</div>

---
