{"id":18019324,"url":"https://github.com/ypermitin/ypermitin.fiastoolset","last_synced_at":"2025-03-26T20:31:20.798Z","repository":{"id":59954852,"uuid":"535426987","full_name":"YPermitin/YPermitin.FIASToolSet","owner":"YPermitin","description":"Набор инструментов для работы с Федеральной Информационной Адресной Системой (ФИАС) (https://fias.nalog.ru/)","archived":false,"fork":false,"pushed_at":"2024-01-08T09:32:35.000Z","size":422,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-22T10:25:14.480Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tinydevtools.ru/fias","language":"C#","has_issues":false,"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/YPermitin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-09-11T21:11:39.000Z","updated_at":"2023-08-29T01:47:15.000Z","dependencies_parsed_at":"2024-01-08T11:06:26.456Z","dependency_job_id":"dd86ef4a-4e50-4e2c-836f-14f4d1522570","html_url":"https://github.com/YPermitin/YPermitin.FIASToolSet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YPermitin%2FYPermitin.FIASToolSet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YPermitin%2FYPermitin.FIASToolSet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YPermitin%2FYPermitin.FIASToolSet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YPermitin%2FYPermitin.FIASToolSet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YPermitin","download_url":"https://codeload.github.com/YPermitin/YPermitin.FIASToolSet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245731395,"owners_count":20663170,"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-10-30T05:09:57.057Z","updated_at":"2025-03-26T20:31:20.002Z","avatar_url":"https://github.com/YPermitin.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YPermitin.FIASToolSet\n\nНабор инструментов для работы с [Федеральной Информационной Адресной Системой (ФИАС)](https://fias.nalog.ru/).\n\n## Обратная связь и новости\n\nВопросы, предложения и любую другую информацию [отправляйте на электронную почту](mailto:i.need.ypermitin@yandex.ru).\n\nНовости по проектам или новым материалам в [Telegram-канале](https://t.me/TinyDevVault).\n\n## Функциональность\n\nВ текущей версии сервис позволяет:\n\n* Открытое API сервиса:\n\t* Получение информации о текущей версии ФИАС по данным ФНС.\n\t* Получение информации о текущей версии ФИАС по данным сервиса.\n* Задание актуализации / отслеживания версии ФИАС по данным ФНС.\n* [Отправка уведомлений о событиях сервиса в Telegram](https://t.me/tinydevtools_fias):\n\t* Появление новой версии ФИАС.\n\nВарианты публикации сервиса:\n\n* Windows (на базе IIS или в качестве службы, а также через веб-сервер Kestrel)\n* *.nix (на базе Kestrel + реверс-прокси через Apache/Nginx)\n\n## Окружение для разработки\n\nДля окружение разработчика необходимы:\n\n* [.NET 7 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/7.0)\n* [Visual Studio 2022](https://visualstudio.microsoft.com/ru/vs/)\n* [PostgreSQL 12/13/14](https://www.postgresql.org/download/)\n\n## Состав проекта\n\nПроекты и библиотеки в составе решения:\n\n* Web - проекты API или других видов веб-приложений.\n\t* YPermitin.FIASToolSet.API - API для работы с классификатором ФИАС.\n* Libs - библиотеки и вспомогательные проекты.\n\t* YPermitin.FIASToolSet.DistributionBrowser - библиотека для работы с дистрибутивами ФИАС с официального сайта (загрузка основного дистрибутива и пакетов обновления, проверка версий).\n\t* YPermitin.FIASToolSet.Jobs - проект заданий для отслеживания обновлений ФИАС, загрузки базы и ее обновления, а также некоторых других действий для обслуживнаия.\n\t* YPermitin.FIASToolSet.Storage.Core - базовый проект для работы с базой данных сервиса.\n\t* YPermitin.FIASToolSet.Storage.PostgreSQL - проект для работы с базой данных сервиса в PostgreSQL.\n    * YPermitin.FIASToolSet.Storage.SQLServer - проект для работы с базой данных сервиса в Microsoft SQL Server.\n* Tests - модульные тесты и связанные проверки.\n\t* YPermitin.FIASToolSet.DistributionBrowser.Tests - тесты библиотеки для работы с дистрибутивами ФИАС.\n\t* YPermitin.FIASToolSet.API.Tests - тесты приложения API для работы с классификатором ФИАС.\n\n## Развертывание проекта\n\nУстановите ASP.NET Core Runtime и PostgreSQL (12+), после чего опубликуйте приложение \"YPermitin.FIASToolSet.API\". Подробнее о публикации ASP.NET Core приложений читайте в [официальной документации](https://docs.microsoft.com/ru-ru/aspnet/core/host-and-deploy/?view=aspnetcore-6.0).\n\n### appsettings.json\n\nФайл настроек приложения \"appsettings.json\" сервиса:\n\n```json\n{\n  \"DeployType\": \"Kestrel\",\n  \"DBMSType\": \"SQLServer\",\n  \"ConnectionStrings\": {\n    \"FIASToolSetService\": \"User ID=\u003cuser\u003e;Password=\u003cpassword\u003e;Host=\u003cserver\u003e;Port=5432;Database=FIASToolSetService;\"\n  },\n  \"Serilog\": {\n    \"MinimumLevel\": \"Debug\"\n  },\n  \"AllowedHosts\": \"*\",\n  \"Jobs\": {\n    \"Schedules\": {\n      \"ActualizeFIASVersionHistoryJob\": \"0 0/10 * * * ?\",\n      \"SendNotificationsJob\": \"0 0/1 * * * ?\"\n    },\n    \"MaxBatchSize\": 10,\n    \"ThreadPoolConcurrency\": 10,\n    \"EnableNotification\": true,\n    \"TelegramBotToken\": \"-\",\n    \"TelegramChatId\": \"-\"\n  },\n  \"CORS\": {\n    \"AllowedOrigins\": [\n    ]\n  }\n}\n\n```\n\nВ параметре *\"DeployType\"* устанавливается тип публикации сервиса:\n\n* *Kestrel* - для использования веб-сервера Kestrel. Значение по умолчанию для *.nix-систем.\n* *IIS* - для использования IIS. Значение по умолчанию для Windows-систем.\n* *WindowsService* - публикация в качестве службы Windows.\n\nСтрока подключения к базе данных сервиса хранится в настройке *\"ConnectionStrings:FIASToolSetService\"*. Ее формат зависит от используемой СУБД, которая устанавливается в параметре *\"DBMSType\"*. Доступные значения:\n\n* PostgreSQL (значение по умолчанию)\n* SQLServer\n\nРаздел настройки заданий *\"Jobs\"*:\n\n* *\"MaxBatchSize\"* - максимальное количество одновременно выполняемых заданий. Можно не настраивать, тогда будет использоваться значение по умолчанию - 10.\n* *\"ThreadPoolConcurrency\"* - размер пула потоков планировщика заданий. Можно не настраивать, тогда будет использоваться значение по умолчанию - 10.\n* *\"EnableNotification\"* - включение механизма уведомлений. Если включено, то будет выполняться регистрация событий уведомления и при старте приложения будет запущено задание отправки уведомлений.\n* *\"TelegramBotToken\"* - токен Telegram-бота для отправки уведомлений о событиях работы сервиса.\n* *\"TelegramChatId\"* - идентификатор чата Telegram, в котором учавствует бот и куда будут отправлены уведомления.\n* *\"Schedules\"* - расписание в формате CRON для каждогого задания.\n\nНастройка *\"CORS:AllowedOrigins\"* применяется для настройки политики CORS, чтобы разрешить определённым сайтам делать запросы со стороны клиента к API.\n\nПри необходимости переопределить порт Kestrel можно указать штатный раздел настроек:\n\n```json\n\"Kestrel\": {\n   \"Endpoints\": {\n      \"Http\": {\n        \"Url\": \"http://localhost:5100\"\n      }\n    }\n}\n```\n\nВ разделе \"Serilog\" находится настройка логирования. Нужно установить минимальный уровень логирования событий. Для рабочего окружения рекомендую только ошибки (Error), для разработки оставить уровень отладки (Debug).\n\n## Планы на будущее\n\n* Добавить возможность хранения классификатора ФИАС в ClickHouse.\n* Реализовать API для работы с данными ФИАС.\n* Сделать пример использования API в [веб-приложении TinyDevTools](https://tinydevtools.ru/fias).\n\n## Лицензия, благодарности и послесловие\n\nПроект делается на чистом интересе и не преследует коммерческих целей. \n\nПубликуется под лицензией MIT, поэтому Вы можете использовать его у себя полностью или частично без каких-либо гарантий и полностью под Вашу ответственность.\n\nСпасибо [ФНС за открытые данные базы реестра адресов - ФИАС](https://fias.nalog.ru/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fypermitin%2Fypermitin.fiastoolset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fypermitin%2Fypermitin.fiastoolset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fypermitin%2Fypermitin.fiastoolset/lists"}