Files
contracts/gen/sso/oauth.ts
2026-04-23 07:49:02 +00:00

222 lines
6.5 KiB
TypeScript

// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.11.6
// protoc v4.25.9
// source: sso/oauth.proto
/* eslint-disable */
import type { Metadata } from "@grpc/grpc-js";
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
import { Observable } from "rxjs";
export const protobufPackage = "oauth.v1";
export interface GenerateOauthCodeRequest {
userId: string;
clientId: string;
redirectUri: string;
}
export interface GenerateOauthCodeResponse {
code: string;
}
export interface ExchangeOauthCodeRequest {
code: string;
clientId: string;
clientSecret: string;
}
export interface ExchangeOauthCodeResponse {
accessToken: string;
expiresIn: number;
}
export interface SystemCreateOauthClientRequest {
/** Название приложения (например, "Grafana Analytics") */
name: string;
/** Список разрешенных коллбеков */
redirectUris: string[];
/** Описание (для админки) */
description?: string | undefined;
}
export interface SystemCreateOauthClientResponse {
/** Внутренний ID в базе */
id: string;
name: string;
/** Публичный ID клиента (app_...) */
clientId: string;
/** ВАЖНО: Чистый секрет. Отдается ТОЛЬКО здесь один раз! */
plainSecret: string;
redirectUris: string[];
}
export interface OauthClientItem {
id: string;
name: string;
clientId: string;
redirectUris: string[];
description?:
| string
| undefined;
/** Обратите внимание: поля secret здесь нет! Секрет нельзя получить списком. */
createdAt: number;
}
export interface SystemGetOauthClientsRequest {
limit: number;
offset: number;
}
export interface SystemGetOauthClientsResponse {
clients: OauthClientItem[];
total: number;
}
export interface SystemUpdateOauthClientRequest {
clientId: string;
name?:
| string
| undefined;
/** Если передано, полностью перезаписывает старые */
redirectUris: string[];
description?: string | undefined;
}
export interface SystemUpdateOauthClientResponse {
success: boolean;
}
export interface SystemResetOauthSecretRequest {
clientId: string;
}
export interface SystemResetOauthSecretResponse {
/** Возвращаем новый сгенерированный секрет */
newPlainSecret: string;
}
export interface SystemDeleteOauthClientRequest {
clientId: string;
}
export interface SystemDeleteOauthClientResponse {
success: boolean;
}
export const OAUTH_V1_PACKAGE_NAME = "oauth.v1";
export interface OauthServiceClient {
/** === Базовый SSO (вызывается из Gateway / Графаны) === */
generateOauthCode(request: GenerateOauthCodeRequest, metadata?: Metadata): Observable<GenerateOauthCodeResponse>;
exchangeOauthCode(request: ExchangeOauthCodeRequest, metadata?: Metadata): Observable<ExchangeOauthCodeResponse>;
/** === Системные методы для Админки (Управление клиентами) === */
systemCreateOauthClient(
request: SystemCreateOauthClientRequest,
metadata?: Metadata,
): Observable<SystemCreateOauthClientResponse>;
systemGetOauthClients(
request: SystemGetOauthClientsRequest,
metadata?: Metadata,
): Observable<SystemGetOauthClientsResponse>;
systemUpdateOauthClient(
request: SystemUpdateOauthClientRequest,
metadata?: Metadata,
): Observable<SystemUpdateOauthClientResponse>;
systemResetOauthSecret(
request: SystemResetOauthSecretRequest,
metadata?: Metadata,
): Observable<SystemResetOauthSecretResponse>;
systemDeleteOauthClient(
request: SystemDeleteOauthClientRequest,
metadata?: Metadata,
): Observable<SystemDeleteOauthClientResponse>;
}
export interface OauthServiceController {
/** === Базовый SSO (вызывается из Gateway / Графаны) === */
generateOauthCode(
request: GenerateOauthCodeRequest,
metadata?: Metadata,
): Promise<GenerateOauthCodeResponse> | Observable<GenerateOauthCodeResponse> | GenerateOauthCodeResponse;
exchangeOauthCode(
request: ExchangeOauthCodeRequest,
metadata?: Metadata,
): Promise<ExchangeOauthCodeResponse> | Observable<ExchangeOauthCodeResponse> | ExchangeOauthCodeResponse;
/** === Системные методы для Админки (Управление клиентами) === */
systemCreateOauthClient(
request: SystemCreateOauthClientRequest,
metadata?: Metadata,
):
| Promise<SystemCreateOauthClientResponse>
| Observable<SystemCreateOauthClientResponse>
| SystemCreateOauthClientResponse;
systemGetOauthClients(
request: SystemGetOauthClientsRequest,
metadata?: Metadata,
): Promise<SystemGetOauthClientsResponse> | Observable<SystemGetOauthClientsResponse> | SystemGetOauthClientsResponse;
systemUpdateOauthClient(
request: SystemUpdateOauthClientRequest,
metadata?: Metadata,
):
| Promise<SystemUpdateOauthClientResponse>
| Observable<SystemUpdateOauthClientResponse>
| SystemUpdateOauthClientResponse;
systemResetOauthSecret(
request: SystemResetOauthSecretRequest,
metadata?: Metadata,
):
| Promise<SystemResetOauthSecretResponse>
| Observable<SystemResetOauthSecretResponse>
| SystemResetOauthSecretResponse;
systemDeleteOauthClient(
request: SystemDeleteOauthClientRequest,
metadata?: Metadata,
):
| Promise<SystemDeleteOauthClientResponse>
| Observable<SystemDeleteOauthClientResponse>
| SystemDeleteOauthClientResponse;
}
export function OauthServiceControllerMethods() {
return function (constructor: Function) {
const grpcMethods: string[] = [
"generateOauthCode",
"exchangeOauthCode",
"systemCreateOauthClient",
"systemGetOauthClients",
"systemUpdateOauthClient",
"systemResetOauthSecret",
"systemDeleteOauthClient",
];
for (const method of grpcMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcMethod("OauthService", method)(constructor.prototype[method], method, descriptor);
}
const grpcStreamMethods: string[] = [];
for (const method of grpcStreamMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcStreamMethod("OauthService", method)(constructor.prototype[method], method, descriptor);
}
};
}
export const OAUTH_SERVICE_NAME = "OauthService";