@ssoeasy-dev/proto 1.1.0-dev-feat-auth.7 → 1.1.1-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,228 +1,171 @@
1
- # SSO Easy - Protocol Buffers
1
+ # SSO Easy Protocol Buffers
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
4
 
5
5
  Централизованный репозиторий Protocol Buffers контрактов для SSO Easy микросервисной архитектуры.
6
6
 
7
- ## 📦 Установка
7
+ ## Пространства имён
8
8
 
9
- ### Go
9
+ | Пакет | Сервисы | Потребители |
10
+ | -------------- | ----------------------------------------------- | --------------------------- |
11
+ | `auth.v1` | AuthService, VerificationService | `auth.api`, `auth.svc` |
12
+ | `companies.v1` | CompanyService, EmployeeService, ServiceService | `auth.api`, `companies.svc` |
13
+ | `common.v1` | Общие типы (StatusResponse и др.) | все сервисы |
10
14
 
11
- ```bash
12
- go get github.com/ssoeasy-dev/proto@latest
13
- ```
14
-
15
- Или конкретная версия:
15
+ ## Структура проекта
16
16
 
17
- ```bash
18
- go get github.com/ssoeasy-dev/proto@v1.0.0
19
17
  ```
20
-
21
- ### NPM
22
-
23
- ```bash
24
- npm install @ssoeasy-dev/proto
18
+ .
19
+ ├── proto/ # Исходные .proto файлы
20
+ │ ├── auth/v1/ # AuthService, VerificationService
21
+ │ ├── companies/v1/ # CompanyService, EmployeeService, ServiceService
22
+ │ └── common/v1/ # Общие типы
23
+ ├── gen/go/ # Сгенерированный Go код (коммитится)
24
+ │ ├── auth/v1/
25
+ │ ├── companies/v1/
26
+ │ └── common/v1/
27
+ ├── gen/ts/ # Сгенерированный TypeScript код (коммитится)
28
+ │ ├── index.ts
29
+ │ ├── index.auth.ts
30
+ │ ├── index.companies.ts
31
+ │ └── index.common.ts
32
+ ├── buf.yaml
33
+ ├── buf.gen.yaml # Генерация Go кода
34
+ ├── buf.gen.ts.yaml # Генерация TypeScript кода
35
+ ├── go.mod
36
+ ├── package.json
37
+ ├── Makefile
38
+ ├── workflow.md # Процесс работы с изменениями и релизами
39
+ └── README.md
25
40
  ```
26
41
 
27
- Или конкретная версия:
42
+ ## Использование в сервисах
28
43
 
29
- ```bash
30
- npm install @ssoeasy-dev/proto@1.0.0
31
- ```
44
+ ### `auth.svc` и `companies.svc` (Go)
32
45
 
33
- Для pre-release версий (beta, rc):
46
+ Подключение в `go.mod`:
34
47
 
35
- ```bash
36
- npm install @ssoeasy-dev/proto@1.0.0-beta.1
48
+ ```go
49
+ require github.com/ssoeasy-dev/proto v1.1.1
37
50
  ```
38
51
 
39
- ## 🚀 Использование
40
-
41
- ### Импорт в Go проект
52
+ Импорт в коде:
42
53
 
43
54
  ```go
44
- package main
45
-
46
55
  import (
47
- pb "github.com/ssoeasy-dev/proto/gen/go/companies/v1"
48
- "google.golang.org/grpc"
56
+ authpb "github.com/ssoeasy-dev/proto/gen/go/auth/v1"
57
+ companiespb "github.com/ssoeasy-dev/proto/gen/go/companies/v1"
58
+ commonpb "github.com/ssoeasy-dev/proto/gen/go/common/v1"
49
59
  )
50
-
51
- func main() {
52
- conn, _ := grpc.Dial("localhost:50051", grpc.WithInsecure())
53
- defer conn.Close()
54
-
55
- client := pb.NewCompanyServiceClient(conn)
56
- // Используйте client...
57
- }
58
60
  ```
59
61
 
60
- ### Импорт в TypeScript/JavaScript проект
61
-
62
- ```typescript
63
- import { CompanyServiceClient } from '@ssoeasy-dev/proto/companies';
64
- import { CredentialServiceClient } from '@ssoeasy-dev/proto/auth';
65
- import { EmployeeAttributeServiceClient } from '@ssoeasy-dev/proto/abac';
62
+ Обновление до последней версии:
66
63
 
67
- // Используйте клиенты...
64
+ ```bash
65
+ go get github.com/ssoeasy-dev/proto@latest
66
+ go mod tidy
68
67
  ```
69
68
 
70
- ## 🛠️ Разработка
71
-
72
- ### Требования
73
-
74
- - Go 1.24+
75
- - Node.js 20+ (для TypeScript генерации и npm публикации)
76
- - pnpm (для управления npm зависимостями)
77
- - [Buf CLI](https://buf.build/docs/installation)
69
+ ### `auth.api` (TypeScript / NestJS)
78
70
 
79
- ### Установка Buf
71
+ Подключение в `package.json`:
80
72
 
81
- ```bash
82
- # macOS
83
- brew install bufbuild/buf/buf
84
-
85
- # Linux
86
- curl -sSL "https://github.com/bufbuild/buf/releases/latest/download/buf-$(uname -s)-$(uname -m)" \
87
- -o "/usr/local/bin/buf"
88
- chmod +x /usr/local/bin/buf
89
-
90
- # Или через Go
91
- make install-tools
73
+ ```json
74
+ "dependencies": {
75
+ "@ssoeasy-dev/proto": "1.1.1"
76
+ }
92
77
  ```
93
78
 
94
- ### Команды
79
+ Импорт в коде:
95
80
 
96
- ```bash
97
- make help # Показать все команды
98
- make generate # Сгенерировать весь код (Go + TypeScript)
99
- make generate-go # Сгенерировать только Go код
100
- make generate-ts # Сгенерировать только TypeScript код
101
- make lint # Проверить proto файлы на ошибки
102
- make format # Отформатировать proto файлы
103
- make breaking # Проверить breaking changes
104
- make clean # Очистить сгенерированные файлы
105
- make tag VERSION=v1.0.0 # Создать git тег для релиза
106
- make sync-version # Синхронизировать версию package.json с git тегом
107
- make publish-npm # Опубликовать npm пакет (автоматически синхронизирует версию)
108
- ```
81
+ ```typescript
82
+ // gRPC клиенты для auth.svc
83
+ import {
84
+ AuthServiceClient,
85
+ VerificationServiceClient,
86
+ } from "@ssoeasy-dev/proto/auth";
109
87
 
110
- ### Структура проекта
88
+ // gRPC клиенты для companies.svc
89
+ import {
90
+ CompanyServiceClient,
91
+ ServiceServiceClient,
92
+ } from "@ssoeasy-dev/proto/companies";
111
93
 
112
- ```
113
- .
114
- ├── proto/ # Исходные .proto файлы
115
- │ ├── common/v1/ # Общие типы
116
- │ ├── <group>/<version>/ # Протофайлы
117
- │ └── gateway/v1/ # Gateway
118
- ├── gen/go/ # ✅ Сгенерированный Go код (коммитится!)
119
- │ ├── common/v1/
120
- │ ├── <group>/<version>/
121
- │ └── gateway/v1/
122
- ├── gen/ts/ # ✅ Сгенерированный TypeScript код (коммитится!)
123
- │ ├── common/v1/
124
- │ ├── <group>/<version>/
125
- │ └── index.ts
126
- ├── scripts/ # Скрипты для автоматизации
127
- │ └── sync-version.sh # Скрипт синхронизации версии
128
- ├── buf.yaml # Конфигурация Buf
129
- ├── buf.gen.yaml # Генерация Go кода
130
- ├── buf.gen.ts.yaml # Генерация TypeScript кода
131
- ├── go.mod # Go модуль
132
- ├── package.json # NPM пакет конфигурация
133
- ├── Makefile # Команды разработки
134
- └── README.md
94
+ // Общие типы
95
+ import { StatusResponse } from "@ssoeasy-dev/proto/common";
135
96
  ```
136
97
 
137
- ## 📝 Workflow изменений
98
+ Подключение gRPC-клиентов через NestJS ClientsModule — см. `src/infra/grpc/grpc.module.ts` в `auth.api`.
138
99
 
139
- ### 1. Изменение proto файлов
100
+ Обновление:
140
101
 
141
102
  ```bash
142
- # Отредактировать proto файл
143
- vim proto/companies/v1/company.proto
103
+ pnpm add @ssoeasy-dev/proto@latest
104
+ ```
144
105
 
145
- # Проверить стиль
146
- make lint
106
+ ## Разработка
147
107
 
148
- # Отформатировать
149
- make format
108
+ ### Требования
150
109
 
151
- # Проверить breaking changes
152
- make breaking
153
- ```
110
+ - Go 1.24+
111
+ - Node.js 20+
112
+ - pnpm
113
+ - [Buf CLI](https://buf.build/docs/installation)
154
114
 
155
- ### 2. Генерация кода
115
+ ### Установка инструментов
156
116
 
157
117
  ```bash
158
- # Сгенерировать весь код (Go + TypeScript)
159
- make generate
160
-
161
- # Или отдельно
162
- make generate-go # Только Go
163
- make generate-ts # Только TypeScript
164
-
165
- # Проверить что все работает
166
- go mod tidy
167
- pnpm install
118
+ make install-tools
168
119
  ```
169
120
 
170
- ### 3. Коммит и релиз
121
+ ### Команды
171
122
 
172
123
  ```bash
173
- # Закоммитить изменения (proto + gen/)
174
- git add proto/ gen/
175
- git commit -m "feat: add new field to Company"
176
- git push origin main
177
-
178
- # Создать релиз (создаст git тег)
179
- make tag VERSION=v1.1.0
180
-
181
- # GitHub Actions автоматически:
182
- # - Создаст GitHub Release
183
- # - Опубликует npm пакет с версией из тега
184
- # - Go модуль будет доступен через git тег
124
+ make generate # Сгенерировать весь код (Go + TypeScript)
125
+ make generate-go # Только Go
126
+ make generate-ts # Только TypeScript
127
+ make lint # Проверить proto файлы
128
+ make format # Отформатировать proto файлы
129
+ make breaking # Проверить breaking changes относительно main
130
+ make clean # Очистить gen/
185
131
  ```
186
132
 
187
- **Важно:** Версия npm пакета автоматически синхронизируется с git тегом при публикации через GitHub Actions. Версия в `package.json` обновляется автоматически из git тега (без префикса `v`).
188
-
189
- ## 🔄 Обновление зависимости в проектах
190
-
191
- ### Go проекты
133
+ ### Добавление нового proto файла
192
134
 
193
135
  ```bash
194
- # В вашем микросервисе
195
- cd <Микросервис>
136
+ # 1. Создать файл в нужном пространстве имён
137
+ vim proto/auth/v1/my_service.proto
196
138
 
197
- # Обновить до последней версии
198
- go get github.com/ssoeasy-dev/proto@latest
139
+ # 2. Проверить и отформатировать
140
+ make format && make lint
199
141
 
200
- # Или до конкретной версии
201
- go get github.com/ssoeasy-dev/proto@v1.2.0
142
+ # 3. Сгенерировать код
143
+ make generate
202
144
 
203
- go mod tidy
145
+ # 4. Закоммитить proto и сгенерированный код вместе
146
+ git add proto/ gen/
147
+ git commit -m "feat: add MyService"
204
148
  ```
205
149
 
206
- ### TypeScript/JavaScript проекты
150
+ > **Важно:** всегда коммитьте `proto/` и `gen/` вместе. CI проверяет их синхронизацию.
207
151
 
208
- ```bash
209
- # Обновить до последней версии
210
- npm install @ssoeasy-dev/proto@latest
211
- # или
212
- pnpm add @ssoeasy-dev/proto@latest
152
+ ## Релизы
213
153
 
214
- # Или до конкретной версии
215
- npm install @ssoeasy-dev/proto@1.2.0
154
+ Подробный процесс в [workflow.md](./workflow.md). Кратко:
216
155
 
217
- # Для pre-release версий
218
- npm install @ssoeasy-dev/proto@1.2.0-beta.1
219
- ```
156
+ | Событие | Результат |
157
+ | ------------------------------------ | ---------------------------------------------------------------------- |
158
+ | Открытие / обновление PR в `develop` | dev версия `v1.1.1-dev-{branch}.N` |
159
+ | Закрытие PR в `develop` | dev версия удаляется |
160
+ | Мерж в `develop` | beta версия `v1.1.1-beta.N` |
161
+ | Мерж в `main` | production версия из `package.json`, публикация в npm с тегом `latest` |
220
162
 
221
- ## 📄 Лицензия
163
+ ## Лицензия
222
164
 
223
- MIT License - см. [LICENSE](LICENSE) файл.
165
+ MIT см. [LICENSE](LICENSE).
224
166
 
225
- ## 📞 Контакты
167
+ ## Контакты
226
168
 
169
+ - Email: morewiktor@yandex.ru
170
+ - Telegram: [@MoreWiktor](https://t.me/MoreWiktor)
227
171
  - GitHub: [@MoreWiktor](https://github.com/MoreWiktor)
228
- - Проект: [https://github.com/ssoeasy-dev/proto](https://github.com/ssoeasy-dev/proto)