@ssoeasy-dev/proto 1.1.1-beta.1 → 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 +107 -164
- package/gen/ts/auth/v1/auth.ts +1088 -310
- package/gen/ts/auth/v1/common.ts +120 -0
- package/gen/ts/{companies/v1/models/employee_company.ts → auth/v1/permission.ts} +63 -35
- package/gen/ts/auth/v1/user_policy.ts +454 -0
- package/gen/ts/auth/v1/verification.ts +390 -103
- package/gen/ts/common/v1/types.ts +25 -67
- package/gen/ts/companies/v1/employee.ts +418 -0
- package/gen/ts/companies/v1/owner.ts +43 -286
- package/gen/ts/companies/v1/service.ts +150 -0
- package/gen/ts/companies/v1/{models/subscription.ts → subscription.ts} +64 -70
- package/gen/ts/index.auth.ts +1 -1
- package/gen/ts/index.auth.v1.ts +4 -1
- package/gen/ts/index.common.ts +1 -1
- package/gen/ts/index.common.v1.ts +1 -1
- package/gen/ts/index.companies.ts +1 -1
- package/gen/ts/index.companies.v1.ts +4 -2
- package/gen/ts/index.ts +1 -6
- package/package.json +1 -9
- package/proto/auth/v1/auth.proto +68 -19
- package/proto/auth/v1/common.proto +8 -0
- package/proto/auth/v1/permission.proto +15 -0
- package/proto/auth/v1/user_policy.proto +30 -0
- package/proto/auth/v1/verification.proto +32 -9
- package/proto/common/v1/types.proto +2 -5
- package/proto/companies/v1/employee.proto +26 -0
- package/proto/companies/v1/owner.proto +4 -19
- package/proto/companies/v1/service.proto +14 -0
- package/proto/companies/v1/subscription.proto +15 -0
- package/gen/ts/abac/v1/employee_attribute.ts +0 -501
- package/gen/ts/abac/v1/models/employee_attribute.ts +0 -190
- package/gen/ts/companies/v1/models/company.ts +0 -204
- package/gen/ts/companies/v1/models/employee.ts +0 -175
- package/gen/ts/google/protobuf/timestamp.ts +0 -233
- package/gen/ts/index.abac.ts +0 -8
- package/gen/ts/index.abac.v1.models.ts +0 -8
- package/gen/ts/index.abac.v1.ts +0 -9
- package/gen/ts/index.companies.v1.models.ts +0 -11
- package/gen/ts/index.google.protobuf.ts +0 -8
- package/gen/ts/index.google.ts +0 -8
- package/gen/ts/index.services.ts +0 -8
- package/gen/ts/index.services.v1.ts +0 -8
- package/gen/ts/services/v1/services.ts +0 -293
- package/proto/abac/v1/employee_attribute.proto +0 -31
- package/proto/abac/v1/models/employee_attribute.proto +0 -11
- package/proto/companies/v1/models/company.proto +0 -12
- package/proto/companies/v1/models/employee.proto +0 -11
- package/proto/companies/v1/models/employee_company.proto +0 -9
- package/proto/companies/v1/models/subscription.proto +0 -10
- package/proto/services/v1/services.proto +0 -19
package/README.md
CHANGED
|
@@ -1,228 +1,171 @@
|
|
|
1
|
-
# SSO Easy
|
|
1
|
+
# SSO Easy — Protocol Buffers
|
|
2
2
|
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
|
|
5
5
|
Централизованный репозиторий Protocol Buffers контрактов для SSO Easy микросервисной архитектуры.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Пространства имён
|
|
8
8
|
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
30
|
-
npm install @ssoeasy-dev/proto@1.0.0
|
|
31
|
-
```
|
|
44
|
+
### `auth.svc` и `companies.svc` (Go)
|
|
32
45
|
|
|
33
|
-
|
|
46
|
+
Подключение в `go.mod`:
|
|
34
47
|
|
|
35
|
-
```
|
|
36
|
-
|
|
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
|
-
|
|
48
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
71
|
+
Подключение в `package.json`:
|
|
80
72
|
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
```
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
98
|
+
Подключение gRPC-клиентов через NestJS ClientsModule — см. `src/infra/grpc/grpc.module.ts` в `auth.api`.
|
|
138
99
|
|
|
139
|
-
|
|
100
|
+
Обновление:
|
|
140
101
|
|
|
141
102
|
```bash
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
110
|
+
- Go 1.24+
|
|
111
|
+
- Node.js 20+
|
|
112
|
+
- pnpm
|
|
113
|
+
- [Buf CLI](https://buf.build/docs/installation)
|
|
154
114
|
|
|
155
|
-
###
|
|
115
|
+
### Установка инструментов
|
|
156
116
|
|
|
157
117
|
```bash
|
|
158
|
-
|
|
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
|
-
###
|
|
121
|
+
### Команды
|
|
171
122
|
|
|
172
123
|
```bash
|
|
173
|
-
#
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
#
|
|
179
|
-
make
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
## 🔄 Обновление зависимости в проектах
|
|
190
|
-
|
|
191
|
-
### Go проекты
|
|
133
|
+
### Добавление нового proto файла
|
|
192
134
|
|
|
193
135
|
```bash
|
|
194
|
-
#
|
|
195
|
-
|
|
136
|
+
# 1. Создать файл в нужном пространстве имён
|
|
137
|
+
vim proto/auth/v1/my_service.proto
|
|
196
138
|
|
|
197
|
-
#
|
|
198
|
-
|
|
139
|
+
# 2. Проверить и отформатировать
|
|
140
|
+
make format && make lint
|
|
199
141
|
|
|
200
|
-
#
|
|
201
|
-
|
|
142
|
+
# 3. Сгенерировать код
|
|
143
|
+
make generate
|
|
202
144
|
|
|
203
|
-
|
|
145
|
+
# 4. Закоммитить proto и сгенерированный код вместе
|
|
146
|
+
git add proto/ gen/
|
|
147
|
+
git commit -m "feat: add MyService"
|
|
204
148
|
```
|
|
205
149
|
|
|
206
|
-
|
|
150
|
+
> **Важно:** всегда коммитьте `proto/` и `gen/` вместе. CI проверяет их синхронизацию.
|
|
207
151
|
|
|
208
|
-
|
|
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
|
-
|
|
218
|
-
|
|
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
|
|
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)
|