222 lines
6.5 KiB
TypeScript
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";
|