edf-fusion


Nameedf-fusion JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryFusion Framework Library
upload_time2025-10-13 14:07:12
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords edf fusion framework library
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Fusion Framework Library

## Introduction

This framework allows to develop new services based on generic basic blocs. It was created to ease maintainance of a modular ecosystem of cybersecurity services.

> [!TIP]
> This documentation does not aim for completeness but provides some keywords to `grep` to quickly locate the code which could answer the questions you may have.


## Structure

The framework is divided in four modules listed in the following table.

| Module | Description |
|:---------:|:-------------------------------------------|
| `client`  | Contains classes to build client applications to interact with server applications |
| `concept` | Contains concepts common to all services |
| `helper`  | Contains helpers to ease implementation of several tasks |
| `server`  | Contains classes to build server applications |


## Concept

In Fusion Framework, `Concept` is the interface for most objects shared between servers and clients. It implements serialization and deserialization methods allowing transparent conversion to and from JSON.

There are many subclasses of `Concept`, some are defined in this library as they are applicable to most client/server use-cases. Services can also derive `Concept` class to implement service-specific objects needed to exchange data between server and client.


## Server

Most important classes are listed in the following table.

| Class | Description |
|:---------:|:-------------------------------------------|
| `FusionAuthBackend` | Subclasses of this class perform authentication against different identity providers |
| `FusionAuthAPI`     | Implements authentication API for the server |
| `FusionCaseAPI`     | Implements case management API for the server |
| `FusionConstantAPI` | Implements hot-reload config API for the server |
| `FusionDownloadAPI` | Implements file download API for the server |
| `FusionEventAPI`    | Implements SSE and webhook APIs for the server |
| `FusionInfoAPI`     | Implements server information API |

Other important classes are located in these modules.

| Module | Description |
|:---------:|:-------------------------------------------|
| `config`       | Configuration classes |
| `storage`      | Data storage classes |
| `synchronizer` | Synchronizer classes |


## Client

Most important classes are listed in the following table.

| Class | Description |
|:---------:|:-------------------------------------------|
| `FusionClient` | Provides a generic client to handle communication with server mostly based on `Concept` subclasses |
| `FusionAuthAPIClient`     | Implements client for authentication API |
| `FusionCaseAPIClient`     | Implements client for case management API |
| `FusionConstantAPIClient` | Implements client for hot-reload config API |
| `FusionDownloadAPIClient` | Implements client for file download API |
| `FusionEventAPIClient`    | Implements client for SSE and webhook APIs |
| `FusionInfoAPIClient`     | Implements client for information API |


## Helper

Most important helpers are listed in the following table.

| Module | Description |
|:---------:|:-------------------------------------------|
| `aiohttp`     | Implements helpers for `aiohttp` operations across services |
| `config`      | Implements `ConfigError` and `load_ssl_config` helper |
| `datetime`    | Implements `datetime` serialization and deserialization |
| `filesystem`  | Implements helpers for filesystem operations across services |
| `flock`       | Implements file-based asynchronous locking |
| `logging`     | Implements logging helpers |
| `notifier`    | Implements `FusionNotifier` used for webhook notifications |
| `pubsub`      | Implements publisher/subscriber notification queues (best effort) |
| `serializing` | Implements serialization (`Dumpable`) and deserialization (`Loadable`) |
| `streaming`   | Implements data streaming operations across services |
| `subprocess`  | Implements subprocess operations across services |
| `timer`       | Implements `Timer` |
| `tracing`     | Implements `trace_user_op` used to trace user operations across services |
| `zip`         | Implements archive creation (`create_zip`) and extraction (`extract_zip`) |

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "edf-fusion",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "edf, fusion, framework, library",
    "author": null,
    "author_email": "CERT-EDF <cert@edf.fr>",
    "download_url": null,
    "platform": null,
    "description": "# Fusion Framework Library\n\n## Introduction\n\nThis framework allows to develop new services based on generic basic blocs. It was created to ease maintainance of a modular ecosystem of cybersecurity services.\n\n> [!TIP]\n> This documentation does not aim for completeness but provides some keywords to `grep` to quickly locate the code which could answer the questions you may have.\n\n\n## Structure\n\nThe framework is divided in four modules listed in the following table.\n\n| Module | Description |\n|:---------:|:-------------------------------------------|\n| `client`  | Contains classes to build client applications to interact with server applications |\n| `concept` | Contains concepts common to all services |\n| `helper`  | Contains helpers to ease implementation of several tasks |\n| `server`  | Contains classes to build server applications |\n\n\n## Concept\n\nIn Fusion Framework, `Concept` is the interface for most objects shared between servers and clients. It implements serialization and deserialization methods allowing transparent conversion to and from JSON.\n\nThere are many subclasses of `Concept`, some are defined in this library as they are applicable to most client/server use-cases. Services can also derive `Concept` class to implement service-specific objects needed to exchange data between server and client.\n\n\n## Server\n\nMost important classes are listed in the following table.\n\n| Class | Description |\n|:---------:|:-------------------------------------------|\n| `FusionAuthBackend` | Subclasses of this class perform authentication against different identity providers |\n| `FusionAuthAPI`     | Implements authentication API for the server |\n| `FusionCaseAPI`     | Implements case management API for the server |\n| `FusionConstantAPI` | Implements hot-reload config API for the server |\n| `FusionDownloadAPI` | Implements file download API for the server |\n| `FusionEventAPI`    | Implements SSE and webhook APIs for the server |\n| `FusionInfoAPI`     | Implements server information API |\n\nOther important classes are located in these modules.\n\n| Module | Description |\n|:---------:|:-------------------------------------------|\n| `config`       | Configuration classes |\n| `storage`      | Data storage classes |\n| `synchronizer` | Synchronizer classes |\n\n\n## Client\n\nMost important classes are listed in the following table.\n\n| Class | Description |\n|:---------:|:-------------------------------------------|\n| `FusionClient` | Provides a generic client to handle communication with server mostly based on `Concept` subclasses |\n| `FusionAuthAPIClient`     | Implements client for authentication API |\n| `FusionCaseAPIClient`     | Implements client for case management API |\n| `FusionConstantAPIClient` | Implements client for hot-reload config API |\n| `FusionDownloadAPIClient` | Implements client for file download API |\n| `FusionEventAPIClient`    | Implements client for SSE and webhook APIs |\n| `FusionInfoAPIClient`     | Implements client for information API |\n\n\n## Helper\n\nMost important helpers are listed in the following table.\n\n| Module | Description |\n|:---------:|:-------------------------------------------|\n| `aiohttp`     | Implements helpers for `aiohttp` operations across services |\n| `config`      | Implements `ConfigError` and `load_ssl_config` helper |\n| `datetime`    | Implements `datetime` serialization and deserialization |\n| `filesystem`  | Implements helpers for filesystem operations across services |\n| `flock`       | Implements file-based asynchronous locking |\n| `logging`     | Implements logging helpers |\n| `notifier`    | Implements `FusionNotifier` used for webhook notifications |\n| `pubsub`      | Implements publisher/subscriber notification queues (best effort) |\n| `serializing` | Implements serialization (`Dumpable`) and deserialization (`Loadable`) |\n| `streaming`   | Implements data streaming operations across services |\n| `subprocess`  | Implements subprocess operations across services |\n| `timer`       | Implements `Timer` |\n| `tracing`     | Implements `trace_user_op` used to trace user operations across services |\n| `zip`         | Implements archive creation (`create_zip`) and extraction (`extract_zip`) |\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Fusion Framework Library",
    "version": "1.0.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/cert-edf/fusion/issues",
        "Homepage": "https://github.com/cert-edf/fusion",
        "Repository": "https://github.com/cert-edf/fusion"
    },
    "split_keywords": [
        "edf",
        " fusion",
        " framework",
        " library"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "053cbf241dd779fd25e868b25c064f61f70ff4a4886d2a248efcd3fc3778e114",
                "md5": "b231b84a1df709c32820a73ab359f46e",
                "sha256": "faeb9440e65c352ec11f3f94e4fb66f55578ef4b437be39a3e9f71f30a36fd82"
            },
            "downloads": -1,
            "filename": "edf_fusion-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b231b84a1df709c32820a73ab359f46e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 49289,
            "upload_time": "2025-10-13T14:07:12",
            "upload_time_iso_8601": "2025-10-13T14:07:12.478994Z",
            "url": "https://files.pythonhosted.org/packages/05/3c/bf241dd779fd25e868b25c064f61f70ff4a4886d2a248efcd3fc3778e114/edf_fusion-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-13 14:07:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cert-edf",
    "github_project": "fusion",
    "github_not_found": true,
    "lcname": "edf-fusion"
}
        
Elapsed time: 1.44212s