@ssoeasy-dev/proto 1.1.0-beta.2
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/LICENSE +22 -0
- package/README.md +228 -0
- package/gen/ts/abac/v1/employee_attribute.ts +501 -0
- package/gen/ts/abac/v1/models/employee_attribute.ts +190 -0
- package/gen/ts/auth/v1/auth.ts +663 -0
- package/gen/ts/auth/v1/verification.ts +340 -0
- package/gen/ts/common/v1/types.ts +142 -0
- package/gen/ts/companies/v1/models/company.ts +204 -0
- package/gen/ts/companies/v1/models/employee.ts +175 -0
- package/gen/ts/companies/v1/models/employee_company.ts +145 -0
- package/gen/ts/companies/v1/models/subscription.ts +166 -0
- package/gen/ts/companies/v1/owner.ts +569 -0
- package/gen/ts/google/protobuf/timestamp.ts +233 -0
- package/gen/ts/index.abac.ts +8 -0
- package/gen/ts/index.abac.v1.models.ts +8 -0
- package/gen/ts/index.abac.v1.ts +9 -0
- package/gen/ts/index.auth.ts +8 -0
- package/gen/ts/index.auth.v1.ts +9 -0
- package/gen/ts/index.common.ts +8 -0
- package/gen/ts/index.common.v1.ts +8 -0
- package/gen/ts/index.companies.ts +8 -0
- package/gen/ts/index.companies.v1.models.ts +11 -0
- package/gen/ts/index.companies.v1.ts +9 -0
- package/gen/ts/index.google.protobuf.ts +8 -0
- package/gen/ts/index.google.ts +8 -0
- package/gen/ts/index.services.ts +8 -0
- package/gen/ts/index.services.v1.ts +8 -0
- package/gen/ts/index.ts +13 -0
- package/gen/ts/services/v1/services.ts +293 -0
- package/package.json +69 -0
- package/proto/abac/v1/employee_attribute.proto +31 -0
- package/proto/abac/v1/models/employee_attribute.proto +11 -0
- package/proto/auth/v1/auth.proto +39 -0
- package/proto/auth/v1/verification.proto +25 -0
- package/proto/common/v1/types.proto +10 -0
- package/proto/companies/v1/models/company.proto +12 -0
- package/proto/companies/v1/models/employee.proto +11 -0
- package/proto/companies/v1/models/employee_company.proto +9 -0
- package/proto/companies/v1/models/subscription.proto +10 -0
- package/proto/companies/v1/owner.proto +38 -0
- package/proto/services/v1/services.proto +19 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 MoreWiktor
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# SSO Easy - Protocol Buffers
|
|
2
|
+
|
|
3
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
|
+
|
|
5
|
+
Централизованный репозиторий Protocol Buffers контрактов для SSO Easy микросервисной архитектуры.
|
|
6
|
+
|
|
7
|
+
## 📦 Установка
|
|
8
|
+
|
|
9
|
+
### Go
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
go get github.com/ssoeasy-dev/proto@latest
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Или конкретная версия:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
go get github.com/ssoeasy-dev/proto@v1.0.0
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### NPM
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install @ssoeasy-dev/proto
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Или конкретная версия:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install @ssoeasy-dev/proto@1.0.0
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Для pre-release версий (beta, rc):
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install @ssoeasy-dev/proto@1.0.0-beta.1
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 🚀 Использование
|
|
40
|
+
|
|
41
|
+
### Импорт в Go проект
|
|
42
|
+
|
|
43
|
+
```go
|
|
44
|
+
package main
|
|
45
|
+
|
|
46
|
+
import (
|
|
47
|
+
pb "github.com/ssoeasy-dev/proto/gen/go/companies/v1"
|
|
48
|
+
"google.golang.org/grpc"
|
|
49
|
+
)
|
|
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
|
+
```
|
|
59
|
+
|
|
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';
|
|
66
|
+
|
|
67
|
+
// Используйте клиенты...
|
|
68
|
+
```
|
|
69
|
+
|
|
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)
|
|
78
|
+
|
|
79
|
+
### Установка Buf
|
|
80
|
+
|
|
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
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Команды
|
|
95
|
+
|
|
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
|
+
```
|
|
109
|
+
|
|
110
|
+
### Структура проекта
|
|
111
|
+
|
|
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
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## 📝 Workflow изменений
|
|
138
|
+
|
|
139
|
+
### 1. Изменение proto файлов
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Отредактировать proto файл
|
|
143
|
+
vim proto/companies/v1/company.proto
|
|
144
|
+
|
|
145
|
+
# Проверить стиль
|
|
146
|
+
make lint
|
|
147
|
+
|
|
148
|
+
# Отформатировать
|
|
149
|
+
make format
|
|
150
|
+
|
|
151
|
+
# Проверить breaking changes
|
|
152
|
+
make breaking
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 2. Генерация кода
|
|
156
|
+
|
|
157
|
+
```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
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 3. Коммит и релиз
|
|
171
|
+
|
|
172
|
+
```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 тег
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Важно:** Версия npm пакета автоматически синхронизируется с git тегом при публикации через GitHub Actions. Версия в `package.json` обновляется автоматически из git тега (без префикса `v`).
|
|
188
|
+
|
|
189
|
+
## 🔄 Обновление зависимости в проектах
|
|
190
|
+
|
|
191
|
+
### Go проекты
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# В вашем микросервисе
|
|
195
|
+
cd <Микросервис>
|
|
196
|
+
|
|
197
|
+
# Обновить до последней версии
|
|
198
|
+
go get github.com/ssoeasy-dev/proto@latest
|
|
199
|
+
|
|
200
|
+
# Или до конкретной версии
|
|
201
|
+
go get github.com/ssoeasy-dev/proto@v1.2.0
|
|
202
|
+
|
|
203
|
+
go mod tidy
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### TypeScript/JavaScript проекты
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# Обновить до последней версии
|
|
210
|
+
npm install @ssoeasy-dev/proto@latest
|
|
211
|
+
# или
|
|
212
|
+
pnpm add @ssoeasy-dev/proto@latest
|
|
213
|
+
|
|
214
|
+
# Или до конкретной версии
|
|
215
|
+
npm install @ssoeasy-dev/proto@1.2.0
|
|
216
|
+
|
|
217
|
+
# Для pre-release версий
|
|
218
|
+
npm install @ssoeasy-dev/proto@1.2.0-beta.1
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## 📄 Лицензия
|
|
222
|
+
|
|
223
|
+
MIT License - см. [LICENSE](LICENSE) файл.
|
|
224
|
+
|
|
225
|
+
## 📞 Контакты
|
|
226
|
+
|
|
227
|
+
- GitHub: [@MoreWiktor](https://github.com/MoreWiktor)
|
|
228
|
+
- Проект: [https://github.com/ssoeasy-dev/proto](https://github.com/ssoeasy-dev/proto)
|