{"id":16883342,"url":"https://github.com/hardillb/mosquitto-multi-tenant","last_synced_at":"2025-07-26T21:06:05.610Z","repository":{"id":229296891,"uuid":"776370951","full_name":"hardillb/mosquitto-multi-tenant","owner":"hardillb","description":"A Mosquitto plugin to support multiple teams","archived":false,"fork":false,"pushed_at":"2024-09-14T21:38:49.000Z","size":33,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-11T12:17:48.319Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hardillb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-23T10:15:42.000Z","updated_at":"2025-04-03T09:25:38.000Z","dependencies_parsed_at":"2024-09-13T09:55:04.934Z","dependency_job_id":"e1ff363b-3517-42b7-ba6e-09f9b0f30aa8","html_url":"https://github.com/hardillb/mosquitto-multi-tenant","commit_stats":null,"previous_names":["hardillb/mosquitto-multi-tenant"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/hardillb/mosquitto-multi-tenant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardillb%2Fmosquitto-multi-tenant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardillb%2Fmosquitto-multi-tenant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardillb%2Fmosquitto-multi-tenant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardillb%2Fmosquitto-multi-tenant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hardillb","download_url":"https://codeload.github.com/hardillb/mosquitto-multi-tenant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardillb%2Fmosquitto-multi-tenant/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267236247,"owners_count":24057652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T16:11:19.146Z","updated_at":"2025-07-26T21:06:05.588Z","avatar_url":"https://github.com/hardillb.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi Tenant Mosquitto Plugin\n\nThis plugin is a very basic way to allow multiple teams to use a single MQTT broker without \nany access to each others topics, and without needing them to stick to a specific topic \npattern/prefix.\n\n## Build\n\n- Check out \u0026 build the mosquitto develop branch (or 2.1.0 once released)\n- Check out this project in an adjacent directory\n- run `make` in this project\n\n\n## Configure\n\n```\nport 1883\nplugin ./mosquitto_multi_tenant.so\nplugin_opt_regex ^[a-z0-9]+@([a-z0-9]+)$\n\nallow_anonymous false\npassword_file passwd\n```\n\n## Testing\n\nUse `mosquitto_passwd` to create a `passwd` file with usernames of the format `user@groupname`\nand an `admin` user then run `./test.sh` to start the broker.\n\n - Subscribe user from group `foo` with `mosquitto_sub -u user@foo -P password -v -t '#'`\n - Subscribe user from group `bar` with `mosquitto_sub -u user@bar -P password -v -t '#'`\n - Subscribe admin user with `mosquitto_sub -u admin -P password -v -t '#'`\n\nThen\n\n - Publish message for `foo` group with `mosquitto_pub -u user@foo -P password -t test -m message`\n\n## Limitations\n\n - ~~Client IDs still need to be globally unique across the whole broker~~.\n - ~~Shared Subscriptions not supported (yet)~~\n - ACLs need work, write is to the \"original\" topic, but read needs to be to the prefixed topic\n\n## Acknowledgement\n\nThis code is based on the topic-jail plugin example included in the Mosquitto 2.1.0 release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardillb%2Fmosquitto-multi-tenant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhardillb%2Fmosquitto-multi-tenant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardillb%2Fmosquitto-multi-tenant/lists"}