Skip to content

PanIndustrial-Org/icaibus_whitelister

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICaiBus Whitelister

This is alpha software. Use at your own risk.

Repository: Pan Industrial Org - ICaiBus Whitelister


Overview

ICaiBus Whitelister is part of the broader ICaiBus messaging bus ecosystem for the Internet Computer (IC), which enables decentralized publish-subscribe messaging patterns across canisters. This repository contains a Motoko-based implementation of a whitelisting mechanism for event-driven pub-sub systems. It supports managing access control and secure subscription configurations.

This project uses ICRC-72 - Minimal Event-Driven Pub-Sub Standard and ICRC-75 - Minimal Membership Standard.

With this Minimal Event-Driven Pub-Sub Standard, designed to formalize event messaging patterns on the IC. By leveraging whitelister functionality, developers can:

  • Manage access control for specific event namespaces.
  • Provide whitelisted event notifications to authorized subscribers.
  • Enable fine-grained control over event handling and filtering.

Project Components

Canisters

This repository contains two main canisters:

  1. Whitelister (src/whitelister.mo):

    • Implements the whitelisting logic for managing event subscriptions.
    • Provides methods for adding, removing, and querying whitelisted subscribers.
    • Conforms to the ICRC-72 standards for event handling and subscription management.
  2. Splitter (src/splitter.mo):

    • A utility canister that helps manage the distribution of events across multiple subscribers.
    • Handles splitting event streams and forwarding them to whitelisted subscribers.

Both canisters are built using Motoko and interact seamlessly with other ICaiBus components, such as orchestrators and broadcasters.

Configuration

The project uses dfx.json to define the canister configuration:

{
  "canisters": {
    "whitelister": {
      "main": "src/whitelister.mo",
      "type": "motoko"
    },
    "splitter": {
      "main": "src/splitter.mo",
      "type": "motoko"
    }
  },
  "defaults": {
    "build": {
      "args": "",
      "packtool": "mops sources"
    },
    "replica": {
      "subnet_type": "system"
    }
  },
  "version": 1
}

Features

Whitelister Canister

  • Add and remove whitelisted subscribers dynamically.
  • Query subscription details for managing event access.
  • Enforce namespace-specific access controls.

Splitter Canister

  • Distribute event notifications across multiple subscribers efficiently.
  • Apply subscription-specific configurations like filters and priorities.

Setup and Installation

Prerequisites

Clone the Repository

git clone [email protected]:PanIndustrial-Org/ICaiBus_whitelister.git
cd icaibus_whitelister

Workspace

You will need the subscriber component in your workspace.

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository.
  2. Create a feature branch.
  3. Submit a pull request describing your changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.


Contact

For questions or support, please reach out via:


Acknowledgments

This project is part of the ICaiBus ecosystem and supported by the ICRC-72 standard. Special thanks to contributors and the Event Utility Working Group for their invaluable input.

About

Waitlisted and Splitter for ICaiBus Alpha

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages