{"id":48877030,"url":"https://github.com/aoc-gamers/connect-libraries","last_synced_at":"2026-04-16T01:01:09.029Z","repository":{"id":331679695,"uuid":"1129351374","full_name":"AoC-Gamers/Connect-Libraries","owner":"AoC-Gamers","description":"Librerías compartidas y reutilizables de Go para el ecosistema de microservicios Connect Backend","archived":false,"fork":false,"pushed_at":"2026-04-15T23:07:04.000Z","size":339,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-15T23:32:10.839Z","etag":null,"topics":["authentication","go","golang","internal-tools","jwt","microservices","middleware","nats","testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AoC-Gamers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":"audit/CHANGELOG.md","citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-07T01:09:31.000Z","updated_at":"2026-04-15T23:07:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"5f0d2f8a-077f-489c-ae81-17bcf3c51f82","html_url":"https://github.com/AoC-Gamers/Connect-Libraries","commit_stats":null,"previous_names":["aoc-gamers/connect-libraries"],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/AoC-Gamers/Connect-Libraries","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoC-Gamers%2FConnect-Libraries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoC-Gamers%2FConnect-Libraries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoC-Gamers%2FConnect-Libraries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoC-Gamers%2FConnect-Libraries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AoC-Gamers","download_url":"https://codeload.github.com/AoC-Gamers/Connect-Libraries/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoC-Gamers%2FConnect-Libraries/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31866357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["authentication","go","golang","internal-tools","jwt","microservices","middleware","nats","testing"],"created_at":"2026-04-16T01:00:37.321Z","updated_at":"2026-04-16T01:01:08.987Z","avatar_url":"https://github.com/AoC-Gamers.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Connect Libraries\n\n[![CI](https://github.com/AoC-Gamers/connect-libraries/actions/workflows/ci.yml/badge.svg)](https://github.com/AoC-Gamers/connect-libraries/actions/workflows/ci.yml)\n[![Release](https://github.com/AoC-Gamers/connect-libraries/actions/workflows/release.yml/badge.svg)](https://github.com/AoC-Gamers/connect-libraries/actions/workflows/release.yml)\n\n🔧 Librerías compartidas y reutilizables para el ecosistema de microservicios Connect Backend.\n\n## ✅ Prerrequisitos\n\nAntes de ejecutar los comandos `make` del repositorio:\n\n- Go `1.24.x`\n- `golangci-lint` `v2.10.1`\n- `gosec` `v2.23.0`\n- `make`\n\nPuedes validar versiones con:\n\n```bash\ngo version\ngolangci-lint version\ngosec -version\nmake --version\n```\n\n## 📦 Librerías Disponibles\n\n| Librería | Descripción | Versión |\n|----------|-------------|---------|\n| [apikey](./apikey/) | Autenticación y validación de API Keys | ![Version](https://img.shields.io/badge/version-1.0.0-blue) |\n| [authz](./authz/) | Sistema de autorización, roles y permisos (RBAC) | ![Version](https://img.shields.io/badge/version-2.0.3-blue) |\n| [errors](./errors/) | Manejo de errores estandarizado (RFC 7807) | ![Version](https://img.shields.io/badge/version-1.0.0-blue) |\n| [middleware](./middleware/) | Middlewares HTTP para framework Chi | ![Version](https://img.shields.io/badge/version-1.0.0-blue) |\n| [migrate](./migrate/) | Sistema de migraciones para PostgreSQL | ![Version](https://img.shields.io/badge/version-1.0.0-blue) |\n| [nats](./nats/) | Cliente NATS con soporte JetStream | ![Version](https://img.shields.io/badge/version-1.0.0-blue) |\n| [swagger](./swagger/) | Detección automática de Swagger/OpenAPI | ![Version](https://img.shields.io/badge/version-1.0.0-blue) |\n| [testhelpers](./testhelpers/) | Utilidades para testing y mocks | ![Version](https://img.shields.io/badge/version-1.0.0-blue) |\n\n## 🚀 Instalación\n\n### Usar en tus proyectos\n\n```go\n// go.mod\nmodule github.com/AoC-Gamers/Connect-Auth\n\nrequire (\n    github.com/AoC-Gamers/connect-libraries/authz/v2 v2.0.3\n    github.com/AoC-Gamers/connect-libraries/errors v1.0.0\n    github.com/AoC-Gamers/connect-libraries/middleware v1.0.0\n)\n```\n\n```bash\ngo get github.com/AoC-Gamers/connect-libraries/authz/v2@v2.0.3\ngo mod tidy\n```\n\n## 📝 Versionado\n\nEste repositorio usa **versionado independiente por biblioteca** siguiendo Semantic Versioning.\n\nCada biblioteca tiene su propio ciclo de versiones con tags en el formato `\u003clibrería\u003e/v\u003cversión\u003e`:\n\n- `apikey/v1.0.0`, `apikey/v1.0.1`, `apikey/v1.1.0`, ...\n- `authz/v1.0.0`, `authz/v1.0.1`, ...\n- `errors/v1.0.0`, `errors/v1.0.1`, `errors/v1.1.0`, ...\n- etc.\n\n### Cadena de dependencia para releases\n\nPara evitar romper el flujo de integración en los servicios, aplica esta guía antes de publicar versiones.\n\n#### Bibliotecas independientes (entre si)\n\nEstas bibliotecas no tienen `require` internos entre módulos de `Connect-Libraries`, por lo que se pueden versionar de forma independiente:\n\n- `apikey`\n- `audit`\n- `authz/v2`\n- `errors`\n- `middleware/v2`\n- `migrate`\n- `nats`\n- `swagger`\n- `testhelpers`\n\n#### Bibliotecas dependientes (de adopcion en servicios)\n\nAunque sean independientes dentro de este repo, sí dependen de adopción en `Connect-Auth`, `Connect-Core`, `Connect-Lobby` y `Connect-RT`:\n\n- Cambios `major` (ej. `middleware/v2`) requieren actualizar `go.mod` e imports en consumidores.\n- Cambios `minor/patch` requieren solo actualización de versión en `go.mod` de consumidores.\n\n#### Orden recomendado de publicacion\n\n1. Publicar primero bibliotecas sin breaking changes (`patch`/`minor`).\n2. Publicar bibliotecas con breaking changes (`major`) en release separado.\n3. Esperar disponibilidad del tag en el proxy de Go.\n4. Actualizar consumidores por fases (un servicio a la vez), validar CI y luego continuar.\n\n#### Regla obligatoria para `major` en Go\n\nCuando una biblioteca pasa de `v1` a `v2+`, debe incluir el sufijo en el módulo e imports:\n\n- `module github.com/AoC-Gamers/connect-libraries/\u003clib\u003e/v2`\n- Imports: `github.com/AoC-Gamers/connect-libraries/\u003clib\u003e/v2/...`\n\n### Crear nueva versión de una biblioteca\n\n```bash\n# Ejemplo: Nueva versión de authz/v2\ncd authz\n# Actualizar CHANGELOG.md con los cambios\ngit add .\ngit commit -m \"feat(authz): nueva funcionalidad\"\ngit tag authz/v2.0.3\ngit push origin authz/v2.0.3\n```\n\n### Actualizar en proyectos\n\n```bash\n# Actualizar a una versión específica\ngo get github.com/AoC-Gamers/connect-libraries/authz/v2@v2.0.3\n\n# O usar la última versión\ngo get -u github.com/AoC-Gamers/connect-libraries/authz/v2\n\ngo mod tidy\n```\n\n### Consultar versiones disponibles\n\n```bash\n# Ver todas las versiones de una biblioteca\ngo list -m -versions github.com/AoC-Gamers/connect-libraries/authz/v2\n\n# Ver tags en GitHub\ngit ls-remote --tags origin | grep authz\n```\n\n## 🏗️ Estructura del Repositorio\n\n```\nconnect-libraries/\n├── apikey/              # Autenticación API Keys\n│   ├── CHANGELOG.md     # Historial de versiones\n│   └── ...\n├── authz/               # Autorización, roles y permisos\n│   ├── CHANGELOG.md\n│   └── ...\n├── errors/              # Manejo de errores\n│   ├── CHANGELOG.md\n│   └── ...\n├── middleware/          # Middlewares HTTP\n│   ├── CHANGELOG.md\n│   └── ...\n├── migrate/             # Migraciones PostgreSQL\n│   ├── CHANGELOG.md\n│   └── ...\n├── nats/                # Cliente NATS/JetStream\n│   ├── CHANGELOG.md\n│   └── ...\n├── testhelpers/         # Utilidades de testing\n│   ├── CHANGELOG.md\n│   └── ...\n├── .gitignore\n└── README.md\n```\n\n\u003e **Nota**: Cada biblioteca mantiene su propio CHANGELOG.md con su historial de versiones independiente.\n\n## 📊 Reportes en subdirectorio\n\nComo en los backends, ahora puedes generar reportes en un subdirectorio dedicado desde la raíz de `Connect-Libraries`:\n\n```bash\n# Solo tests (logs por librería)\nmake test\n\n# Solo lint (genera lint.json y lint.log por librería)\nmake lint\n\n# Solo seguridad (genera gosec.json y gosec.log por librería)\nmake gosec\n\n# Todo junto\nmake report\n\n# Limpiar reportes por librería\nmake clear\n```\n\nSalida esperada (por librería):\n\n```text\napikey/reports/\n    test.log\n    lint.json\n    lint.log\n    gosec.log\n\nauthz/reports/\nerrors/reports/\n...\n```\n\n## 📄 Licencia\n\nAoC Gamers © 2026\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoc-gamers%2Fconnect-libraries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faoc-gamers%2Fconnect-libraries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoc-gamers%2Fconnect-libraries/lists"}