{"id":19310536,"url":"https://github.com/sepppenner/netcoremqttexampledapperconfig","last_synced_at":"2025-04-22T13:34:24.772Z","repository":{"id":64883296,"uuid":"239786946","full_name":"SeppPenner/NetCoreMQTTExampleDapperConfig","owner":"SeppPenner","description":"NetCoreMQTTExampleDapperConfig is a project to check user credentials and topic restrictions from MQTTnet from a database using Dapper.","archived":false,"fork":false,"pushed_at":"2025-01-07T20:24:34.000Z","size":276,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T00:24:42.451Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SeppPenner.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","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":"2020-02-11T14:49:50.000Z","updated_at":"2025-01-07T20:24:38.000Z","dependencies_parsed_at":"2024-05-13T16:44:12.127Z","dependency_job_id":null,"html_url":"https://github.com/SeppPenner/NetCoreMQTTExampleDapperConfig","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeppPenner%2FNetCoreMQTTExampleDapperConfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeppPenner%2FNetCoreMQTTExampleDapperConfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeppPenner%2FNetCoreMQTTExampleDapperConfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeppPenner%2FNetCoreMQTTExampleDapperConfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SeppPenner","download_url":"https://codeload.github.com/SeppPenner/NetCoreMQTTExampleDapperConfig/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250249130,"owners_count":21399402,"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","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-11-10T00:24:40.803Z","updated_at":"2025-04-22T13:34:24.489Z","avatar_url":"https://github.com/SeppPenner.png","language":"C#","funding_links":["https://patreon.com/SeppPennerOpenSourceDevelopment","https://paypal.me/th070795"],"categories":[],"sub_categories":[],"readme":"NetCoreMQTTExampleDapperConfig\n====================================\n\nNetCoreMQTTExampleDapperConfig is a project to check user credentials and topic restrictions from [MQTTnet](https://github.com/chkr1011/MQTTnet)\nfrom a database using [Dapper](https://stackexchange.github.io/Dapper/).\n\n[![Build status](https://ci.appveyor.com/api/projects/status/gul9bvjb9e7slm6c?svg=true)](https://ci.appveyor.com/project/SeppPenner/netcoremqttexampledapperconfig)\n[![GitHub issues](https://img.shields.io/github/issues/SeppPenner/NetCoreMQTTExampleDapperConfig.svg)](https://github.com/SeppPenner/NetCoreMQTTExampleDapperConfig/issues)\n[![GitHub forks](https://img.shields.io/github/forks/SeppPenner/NetCoreMQTTExampleDapperConfig.svg)](https://github.com/SeppPenner/NetCoreMQTTExampleDapperConfig/network)\n[![GitHub stars](https://img.shields.io/github/stars/SeppPenner/NetCoreMQTTExampleDapperConfig.svg)](https://github.com/SeppPenner/NetCoreMQTTExampleDapperConfig/stargazers)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://raw.githubusercontent.com/SeppPenner/NetCoreMQTTExampleDapperConfig/master/License.txt)\n[![Known Vulnerabilities](https://snyk.io/test/github/SeppPenner/NetCoreMQTTExampleDapperConfig/badge.svg)](https://snyk.io/test/github/SeppPenner/NetCoreMQTTExampleDapperConfig)\n[![Blogger](https://img.shields.io/badge/Follow_me_on-blogger-orange)](https://franzhuber23.blogspot.de/)\n[![Patreon](https://img.shields.io/badge/Patreon-F96854?logo=patreon\u0026logoColor=white)](https://patreon.com/SeppPennerOpenSourceDevelopment)\n[![PayPal](https://img.shields.io/badge/PayPal-00457C?logo=paypal\u0026logoColor=white)](https://paypal.me/th070795)\n\n## How to use this project\n1. Create your users and intial setup using the `DatabaseSetup` project or using the API.\n\n## API documentation\n* The API can be found under http://localhost:5000/swagger/ and is documented with Swagger.\n\n## Temporarily locking clients\nUsers can be blocked temporarily (until the end of the current month) if they exceed a certain data quota.\nTherefore, the parameter `ThrottleUser` in the `User` table must be set to` true` and `MonthlyByteLimit` to the desired threshold in bytes.\n\n## Attention\n* Only the following [UTF-8](https://www.utf8-chartable.de/unicode-utf8-table.pl) chars are supported for topics:\n\n|Unicode code point|character|UTF-8(hex.)|Name|\n|-|-|-|-|\n|U+0021|`!`|21|EXCLAMATION MARK|\n|U+0022|`\"`|22|QUOTATION MARK|\n|U+0023|`#`|23|NUMBER SIGN|\n|U+0024|`$`|24|DOLLAR SIGN|\n|U+0025|`%`|25|PERCENT SIGN|\n|U+0026|`\u0026`|26|AMPERSAND|\n|U+0027|`'`|27|APOSTROPHE|\n|U+0028|`(`|28|LEFT PARENTHESIS|\n|U+0029|`)`|29|RIGHT PARENTHESIS|\n|U+002A|`*`|2a|ASTERISK|\n|U+002B|`+`|2b|PLUS SIGN|\n|U+002C|`,`|2c|COMMA|\n|U+002D|`-`|2d|HYPHEN-MINUS|\n|U+002E|`.`|2e|FULL STOP|\n|U+002F|`/`|2f|SOLIDUS|\n|U+0030|`0`|30|DIGIT ZERO|\n|U+0031|`1`|31|DIGIT ONE|\n|U+0032|`2`|32|DIGIT TWO|\n|U+0033|`3`|33|DIGIT THREE|\n|U+0034|`4`|34|DIGIT FOUR|\n|U+0035|`5`|35|DIGIT FIVE|\n|U+0036|`6`|36|DIGIT SIX|\n|U+0037|`7`|37|DIGIT SEVEN|\n|U+0038|`8`|38|DIGIT EIGHT|\n|U+0039|`9`|39|DIGIT NINE|\n|U+003A|`:`|3a|COLON|\n|U+003B|`;`|3b|SEMICOLON|\n|U+003C|`\u003c`|3c|LESS-THAN SIGN|\n|U+003D|`=`|3d|EQUALS SIGN|\n|U+003E|`\u003e`|3e|GREATER-THAN SIGN|\n|U+003F|`?`|3f|QUESTION MARK|\n|U+0040|`@`|40|COMMERCIAL AT|\n|U+0041|`A`|41|LATIN CAPITAL LETTER A|\n|U+0042|`B`|42|LATIN CAPITAL LETTER B|\n|U+0043|`C`|43|LATIN CAPITAL LETTER C|\n|U+0044|`D`|44|LATIN CAPITAL LETTER D|\n|U+0045|`E`|45|LATIN CAPITAL LETTER E|\n|U+0046|`F`|46|LATIN CAPITAL LETTER F|\n|U+0047|`G`|47|LATIN CAPITAL LETTER G|\n|U+0048|`H`|48|LATIN CAPITAL LETTER H|\n|U+0049|`I`|49|LATIN CAPITAL LETTER I|\n|U+004A|`J`|4a|LATIN CAPITAL LETTER J|\n|U+004B|`K`|4b|LATIN CAPITAL LETTER K|\n|U+004C|`L`|4c|LATIN CAPITAL LETTER L|\n|U+004D|`M`|4d|LATIN CAPITAL LETTER M|\n|U+004E|`N`|4e|LATIN CAPITAL LETTER N|\n|U+004F|`O`|4f|LATIN CAPITAL LETTER O|\n|U+0050|`P`|50|LATIN CAPITAL LETTER P|\n|U+0051|`Q`|51|LATIN CAPITAL LETTER Q|\n|U+0052|`R`|52|LATIN CAPITAL LETTER R|\n|U+0053|`S`|53|LATIN CAPITAL LETTER S|\n|U+0054|`T`|54|LATIN CAPITAL LETTER T|\n|U+0055|`U`|55|LATIN CAPITAL LETTER U|\n|U+0056|`V`|56|LATIN CAPITAL LETTER V|\n|U+0057|`W`|57|LATIN CAPITAL LETTER W|\n|U+0058|`X`|58|LATIN CAPITAL LETTER X|\n|U+0059|`Y`|59|LATIN CAPITAL LETTER Y|\n|U+005A|`Z`|5a|LATIN CAPITAL LETTER Z|\n|U+005B|`[`|5b|LEFT SQUARE BRACKET|\n|U+005C|`\\`|5c|REVERSE SOLIDUS|\n|U+005D|`]`|5d|RIGHT SQUARE BRACKET|\n|U+005E|`^`|5e|CIRCUMFLEX ACCENT|\n|U+005F|`_`|5f|LOW LINE|\n|U+0060|\u003ccode\u003e`\u003c/code\u003e|60|GRAVE ACCENT|\n|U+0061|`a`|61|LATIN SMALL LETTER A|\n|U+0062|`b`|62|LATIN SMALL LETTER B|\n|U+0063|`c`|63|LATIN SMALL LETTER C|\n|U+0064|`d`|64|LATIN SMALL LETTER D|\n|U+0065|`e`|65|LATIN SMALL LETTER E|\n|U+0066|`f`|66|LATIN SMALL LETTER F|\n|U+0067|`g`|67|LATIN SMALL LETTER G|\n|U+0068|`h`|68|LATIN SMALL LETTER H|\n|U+0069|`i`|69|LATIN SMALL LETTER I|\n|U+006A|`j`|6a|LATIN SMALL LETTER J|\n|U+006B|`k`|6b|LATIN SMALL LETTER K|\n|U+006C|`l`|6c|LATIN SMALL LETTER L|\n|U+006D|`m`|6d|LATIN SMALL LETTER M|\n|U+006E|`n`|6e|LATIN SMALL LETTER N|\n|U+006F|`o`|6f|LATIN SMALL LETTER O|\n|U+0070|`p`|70|LATIN SMALL LETTER P|\n|U+0071|`q`|71|LATIN SMALL LETTER Q|\n|U+0072|`r`|72|LATIN SMALL LETTER R|\n|U+0073|`s`|73|LATIN SMALL LETTER S|\n|U+0074|`t`|74|LATIN SMALL LETTER T|\n|U+0075|`u`|75|LATIN SMALL LETTER U|\n|U+0076|`v`|76|LATIN SMALL LETTER V|\n|U+0077|`w`|77|LATIN SMALL LETTER W|\n|U+0078|`x`|78|LATIN SMALL LETTER X|\n|U+0079|`y`|79|LATIN SMALL LETTER Y|\n|U+007A|`z`|7a|LATIN SMALL LETTER Z|\n|U+007B|`{`|7b|LEFT CURLY BRACKET|\n|U+007C|`|`|7c|VERTICAL LINE|\n|U+007D|`}`|7d|RIGHT CURLY BRACKET|\n|U+007E|`~`|7e|TILDE|\n|U+00A1|`¡`|c2 a1|INVERTED EXCLAMATION MARK|\n|U+00A2|`¢`|c2 a2|CENT SIGN|\n|U+00A3|`£`|c2 a3|POUND SIGN|\n|U+00A4|`¤`|c2 a4|CURRENCY SIGN|\n|U+00A5|`¥`|c2 a5|YEN SIGN|\n|U+00A6|`¦`|c2 a6|BROKEN BAR|\n|U+00A7|`§`|c2 a7|SECTION SIGN|\n|U+00A8|`¨`|c2 a8|DIAERESIS|\n|U+00A9|`©`|c2 a9|COPYRIGHT SIGN|\n|U+00AA|`ª`|c2 aa|FEMININE ORDINAL INDICATOR|\n|U+00AB|`«`|c2 ab|LEFT-POINTING DOUBLE ANGLE QUOTATION MARK|\n|U+00AC|`¬`|c2 ac|NOT SIGN|\n|U+00AE|`®`|c2 ae|REGISTERED SIGN|\n|U+00AF|`¯`|c2 af|MACRON|\n|U+00B0|`°`|c2 b0|DEGREE SIGN|\n|U+00B1|`±`|c2 b1|PLUS-MINUS SIGN|\n|U+00B2|`²`|c2 b2|SUPERSCRIPT TWO|\n|U+00B3|`³`|c2 b3|SUPERSCRIPT THREE|\n|U+00B4|`´`|c2 b4|ACUTE ACCENT|\n|U+00B5|`µ`|c2 b5|MICRO SIGN|\n|U+00B6|`¶`|c2 b6|PILCROW SIGN|\n|U+00B7|`·`|c2 b7|MIDDLE DOT|\n|U+00B8|`¸`|c2 b8|CEDILLA|\n|U+00B9|`¹`|c2 b9|SUPERSCRIPT ONE|\n|U+00BA|`º`|c2 ba|MASCULINE ORDINAL INDICATOR|\n|U+00BB|`»`|c2 bb|RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK|\n|U+00BC|`¼`|c2 bc|VULGAR FRACTION ONE QUARTER|\n|U+00BD|`½`|c2 bd|VULGAR FRACTION ONE HALF|\n|U+00BE|`¾`|c2 be|VULGAR FRACTION THREE QUARTERS|\n|U+00BF|`¿`|c2 bf|INVERTED QUESTION MARK|\n|U+00C0|`À`|c3 80|LATIN CAPITAL LETTER A WITH GRAVE|\n|U+00C1|`Á`|c3 81|LATIN CAPITAL LETTER A WITH ACUTE|\n|U+00C2|`Â`|c3 82|LATIN CAPITAL LETTER A WITH CIRCUMFLEX|\n|U+00C3|`Ã`|c3 83|LATIN CAPITAL LETTER A WITH TILDE|\n|U+00C4|`Ä`|c3 84|LATIN CAPITAL LETTER A WITH DIAERESIS|\n|U+00C5|`Å`|c3 85|LATIN CAPITAL LETTER A WITH RING ABOVE|\n|U+00C6|`Æ`|c3 86|LATIN CAPITAL LETTER AE|\n|U+00C7|`Ç`|c3 87|LATIN CAPITAL LETTER C WITH CEDILLA|\n|U+00C8|`È`|c3 88|LATIN CAPITAL LETTER E WITH GRAVE|\n|U+00C9|`É`|c3 89|LATIN CAPITAL LETTER E WITH ACUTE|\n|U+00CA|`Ê`|c3 8a|LATIN CAPITAL LETTER E WITH CIRCUMFLEX|\n|U+00CB|`Ë`|c3 8b|LATIN CAPITAL LETTER E WITH DIAERESIS|\n|U+00CC|`Ì`|c3 8c|LATIN CAPITAL LETTER I WITH GRAVE|\n|U+00CD|`Í`|c3 8d|LATIN CAPITAL LETTER I WITH ACUTE|\n|U+00CE|`Î`|c3 8e|LATIN CAPITAL LETTER I WITH CIRCUMFLEX|\n|U+00CF|`Ï`|c3 8f|LATIN CAPITAL LETTER I WITH DIAERESIS|\n|U+00D0|`Ð`|c3 90|LATIN CAPITAL LETTER ETH|\n|U+00D1|`Ñ`|c3 91|LATIN CAPITAL LETTER N WITH TILDE|\n|U+00D2|`Ò`|c3 92|LATIN CAPITAL LETTER O WITH GRAVE|\n|U+00D3|`Ó`|c3 93|LATIN CAPITAL LETTER O WITH ACUTE|\n|U+00D4|`Ô`|c3 94|LATIN CAPITAL LETTER O WITH CIRCUMFLEX|\n|U+00D5|`Õ`|c3 95|LATIN CAPITAL LETTER O WITH TILDE|\n|U+00D6|`Ö`|c3 96|LATIN CAPITAL LETTER O WITH DIAERESIS|\n|U+00D7|`×`|c3 97|MULTIPLICATION SIGN|\n|U+00D8|`Ø`|c3 98|LATIN CAPITAL LETTER O WITH STROKE|\n|U+00D9|`Ù`|c3 99|LATIN CAPITAL LETTER U WITH GRAVE|\n|U+00DA|`Ú`|c3 9a|LATIN CAPITAL LETTER U WITH ACUTE|\n|U+00DB|`Û`|c3 9b|LATIN CAPITAL LETTER U WITH CIRCUMFLEX|\n|U+00DC|`Ü`|c3 9c|LATIN CAPITAL LETTER U WITH DIAERESIS|\n|U+00DD|`Ý`|c3 9d|LATIN CAPITAL LETTER Y WITH ACUTE|\n|U+00DE|`Þ`|c3 9e|LATIN CAPITAL LETTER THORN|\n|U+00DF|`ß`|c3 9f|LATIN SMALL LETTER SHARP S|\n|U+00E0|`à`|c3 a0|LATIN SMALL LETTER A WITH GRAVE|\n|U+00E1|`á`|c3 a1|LATIN SMALL LETTER A WITH ACUTE|\n|U+00E2|`â`|c3 a2|LATIN SMALL LETTER A WITH CIRCUMFLEX|\n|U+00E3|`ã`|c3 a3|LATIN SMALL LETTER A WITH TILDE|\n|U+00E4|`ä`|c3 a4|LATIN SMALL LETTER A WITH DIAERESIS|\n|U+00E5|`å`|c3 a5|LATIN SMALL LETTER A WITH RING ABOVE|\n|U+00E6|`æ`|c3 a6|LATIN SMALL LETTER AE|\n|U+00E7|`ç`|c3 a7|LATIN SMALL LETTER C WITH CEDILLA|\n|U+00E8|`è`|c3 a8|LATIN SMALL LETTER E WITH GRAVE|\n|U+00E9|`é`|c3 a9|LATIN SMALL LETTER E WITH ACUTE|\n|U+00EA|`ê`|c3 aa|LATIN SMALL LETTER E WITH CIRCUMFLEX|\n|U+00EB|`ë`|c3 ab|LATIN SMALL LETTER E WITH DIAERESIS|\n|U+00EC|`ì`|c3 ac|LATIN SMALL LETTER I WITH GRAVE|\n|U+00ED|`í`|c3 ad|LATIN SMALL LETTER I WITH ACUTE|\n|U+00EE|`î`|c3 ae|LATIN SMALL LETTER I WITH CIRCUMFLEX|\n|U+00EF|`ï`|c3 af|LATIN SMALL LETTER I WITH DIAERESIS|\n|U+00F0|`ð`|c3 b0|LATIN SMALL LETTER ETH|\n|U+00F1|`ñ`|c3 b1|LATIN SMALL LETTER N WITH TILDE|\n|U+00F2|`ò`|c3 b2|LATIN SMALL LETTER O WITH GRAVE|\n|U+00F3|`ó`|c3 b3|LATIN SMALL LETTER O WITH ACUTE|\n|U+00F4|`ô`|c3 b4|LATIN SMALL LETTER O WITH CIRCUMFLEX|\n|U+00F5|`õ`|c3 b5|LATIN SMALL LETTER O WITH TILDE|\n|U+00F6|`ö`|c3 b6|LATIN SMALL LETTER O WITH DIAERESIS|\n|U+00F7|`÷`|c3 b7|DIVISION SIGN|\n|U+00F8|`ø`|c3 b8|LATIN SMALL LETTER O WITH STROKE|\n|U+00F9|`ù`|c3 b9|LATIN SMALL LETTER U WITH GRAVE|\n|U+00FA|`ú`|c3 ba|LATIN SMALL LETTER U WITH ACUTE|\n|U+00FB|`û`|c3 bb|LATIN SMALL LETTER U WITH CIRCUMFLEX|\n|U+00FC|`ü`|c3 bc|LATIN SMALL LETTER U WITH DIAERESIS|\n|U+00FD|`ý`|c3 bd|LATIN SMALL LETTER Y WITH ACUTE|\n|U+00FE|`þ`|c3 be|LATIN SMALL LETTER THORN|\n|U+00FF|`ÿ`|c3 bf|LATIN SMALL LETTER Y WITH DIAERESIS|\n\n## Create an openssl certificate\n```bash\nopenssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365\nopenssl pkcs12 -export -out certificate.pfx -inkey key.pem -in cert.pem\n```\n\nAn example certificate is in the folder. Password for all is `test`.\n\nChange history\n--------------\n\nSee the [Changelog](https://github.com/SeppPenner/NetCoreMQTTExampleDapperConfig/blob/master/Changelog.md).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepppenner%2Fnetcoremqttexampledapperconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsepppenner%2Fnetcoremqttexampledapperconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepppenner%2Fnetcoremqttexampledapperconfig/lists"}