@infomaximum/application-types
Advanced tools
+7
-0
@@ -5,2 +5,9 @@ # Changelog | ||
| ## [1.3.0-rc.2](https://github.com/Infomaximum/frontend-lib/compare/v1.3.0-rc.1...v1.3.0-rc.2) (2026-06-24) | ||
| ### Features | ||
| * расширение контракта ресурсов пространства (таблицы/скрипты/интеграции) ([cc836f0](https://github.com/Infomaximum/frontend-lib/commit/cc836f0062440de135729e32338cc9aafc3c9d30)) | ||
| ## [1.3.0-rc.1](https://github.com/Infomaximum/frontend-lib/compare/v1.3.0-rc.0...v1.3.0-rc.1) (2026-06-24) | ||
@@ -7,0 +14,0 @@ |
+1
-1
| { | ||
| "name": "@infomaximum/application-types", | ||
| "version": "1.3.0-rc.1", | ||
| "version": "1.3.0-rc.2", | ||
| "license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "main": "./src/index.ts", |
@@ -5,5 +5,8 @@ import { type IApplicationProps } from "./index"; | ||
| type ITableData, | ||
| type ITableColumnInfo, | ||
| type IScriptRun, | ||
| type IScriptRunStatus, | ||
| type IScriptRunResult, | ||
| type IScriptExecution, | ||
| type IIntegrationDetails, | ||
| } from "./workspaceContext"; | ||
@@ -36,3 +39,3 @@ | ||
| async function useResources(ctx: IWorkspaceContext) { | ||
| const { tables, scripts } = ctx.resources; | ||
| const { tables, scripts, integrations } = ctx.resources; | ||
@@ -46,2 +49,6 @@ // tables.getData: колоночный контракт, paging опционален | ||
| // tables.getColumns: метаданные колонок без значений | ||
| const columns: ITableColumnInfo[] | undefined = await tables?.getColumns("orders"); | ||
| void columns; | ||
| // scripts: run возвращает scriptId, getStatus/getResult — по id | ||
@@ -56,3 +63,15 @@ const run: IScriptRun | undefined = await scripts?.run("script-guid", "payload"); | ||
| void result; | ||
| // scripts: история выполнений и остановка | ||
| const executions: IScriptExecution[] | undefined = await scripts?.listExecutions(1, { | ||
| paging: { limit: 10 }, | ||
| }); | ||
| const stopped: void | undefined = await scripts?.stop(1); | ||
| void executions; | ||
| void stopped; | ||
| // integrations.get: интеграция с блоками | ||
| const integration: IIntegrationDetails | undefined = await integrations?.get(7); | ||
| void integration; | ||
| } | ||
| void useResources; |
@@ -11,8 +11,22 @@ /** Параметры постраничной выборки ресурса. */ | ||
| involved: boolean; | ||
| id?: number; | ||
| description?: string; | ||
| /** Количество строк в таблице. */ | ||
| linesCount?: number; | ||
| /** Количество колонок. */ | ||
| columnsCount?: number; | ||
| /** Включён row-level security. */ | ||
| rls?: boolean; | ||
| belongsPackage?: boolean; | ||
| } | ||
| /** Колонка данных таблицы. Бэкенд отдаёт данные поколоночно. */ | ||
| export interface ITableColumn { | ||
| /** Метаданные колонки таблицы (без значений). */ | ||
| export interface ITableColumnInfo { | ||
| name: string; | ||
| dataType?: string; | ||
| comment?: string; | ||
| } | ||
| /** Колонка данных таблицы. Бэкенд отдаёт данные поколоночно. */ | ||
| export interface ITableColumn extends ITableColumnInfo { | ||
| values: string[]; | ||
@@ -33,3 +47,6 @@ } | ||
| export interface ITablesApi { | ||
| list(params?: { textFilter?: string; paging?: IWorkspaceResourcePaging }): Promise<ITableInfo[]>; | ||
| list(params?: { | ||
| textFilter?: string; | ||
| paging?: IWorkspaceResourcePaging; | ||
| }): Promise<ITableInfo[]>; | ||
| /** Чтение данных таблицы по имени с учётом RLS и прав пользователя. | ||
@@ -39,2 +56,4 @@ * Ограничение фазы: только постраничное чтение (limit); произвольный | ||
| getData(request: ITableDataRequest): Promise<ITableData>; | ||
| /** Метаданные колонок таблицы (имя, тип, комментарий) без значений. */ | ||
| getColumns(tableName: string): Promise<ITableColumnInfo[]>; | ||
| } | ||
@@ -46,4 +65,23 @@ | ||
| name: string; | ||
| /** Статический идентификатор скрипта — используется для run(). */ | ||
| guid: string; | ||
| description?: string; | ||
| /** Скрипт включён (активен по расписанию/триггеру). */ | ||
| enabled?: boolean; | ||
| /** Скрипт сейчас выполняется. */ | ||
| isRunning?: boolean; | ||
| /** Ключ скрипта. */ | ||
| key?: string; | ||
| /** Количество активных выполнений. */ | ||
| activeExecutionsCount?: number; | ||
| } | ||
| /** Элемент истории выполнений скрипта. */ | ||
| export interface IScriptExecution { | ||
| /** id исполнения — передаётся в getResult. */ | ||
| id: number; | ||
| status: string; | ||
| error?: string; | ||
| } | ||
| /** Результат инициирования запуска скрипта. */ | ||
@@ -75,4 +113,11 @@ export interface IScriptRun { | ||
| getStatus(scriptId: number): Promise<IScriptRunStatus>; | ||
| /** История выполнений скрипта (новые сверху). Даёт id исполнения для getResult. */ | ||
| listExecutions( | ||
| scriptId: number, | ||
| params?: { paging?: IWorkspaceResourcePaging }, | ||
| ): Promise<IScriptExecution[]>; | ||
| /** Результат исполнения скрипта по id исполнения. */ | ||
| getResult(executionId: number): Promise<IScriptRunResult>; | ||
| /** Остановить все выполнения скрипта. */ | ||
| stop(scriptId: number): Promise<void>; | ||
| } | ||
@@ -85,2 +130,5 @@ | ||
| type: string; | ||
| /** Подключение полностью настроено. */ | ||
| configured?: boolean; | ||
| belongsPackage?: boolean; | ||
| } | ||
@@ -91,2 +139,13 @@ export interface IConnectionsApi { | ||
| /** Блок (действие) пользовательской интеграции. */ | ||
| export interface IIntegrationBlock { | ||
| id: number; | ||
| name: string; | ||
| guid: string; | ||
| type?: string; | ||
| /** Ключ обращения к блоку интеграции. */ | ||
| key?: string; | ||
| description?: string; | ||
| } | ||
| /** Интеграция пространства (элемент списка). */ | ||
@@ -97,5 +156,16 @@ export interface IIntegrationInfo { | ||
| guid: string; | ||
| description?: string; | ||
| version?: string; | ||
| belongsPackage?: boolean; | ||
| } | ||
| /** Интеграция с детализацией (блоки/действия). */ | ||
| export interface IIntegrationDetails extends IIntegrationInfo { | ||
| blocks: IIntegrationBlock[]; | ||
| } | ||
| export interface IIntegrationsApi { | ||
| list(): Promise<IIntegrationInfo[]>; | ||
| /** Интеграция по id с её блоками (действиями). Вызов действия — за бэком (MS-950). */ | ||
| get(integrationId: number): Promise<IIntegrationDetails>; | ||
| } | ||
@@ -106,7 +176,6 @@ | ||
| * модуль-владелец зарегистрировал фабрику. Контракт вводится инкрементально — | ||
| * методы добавляются вместе с реализующими их фабриками (полная целевая | ||
| * поверхность — в дизайн-спеке). Сейчас реализуются list-операции 4 ресурсов, | ||
| * чтение данных таблиц (tables.getData) и управление скриптами | ||
| * (scripts.run/getStatus/getResult); fileStorage, интеграции/подключения за | ||
| * пределами list — следующие фазы (бэк-схема, гейт MS-950). | ||
| * методы добавляются вместе с реализующими их фабриками. | ||
| * Реализовано: tables (list/getData/getColumns), scripts (list/run/getStatus/ | ||
| * listExecutions/getResult/stop), connections (list), integrations (list/get). | ||
| * Вне контракта (гейт MS-950): fileStorage, connections.use, integrations.invoke. | ||
| */ | ||
@@ -113,0 +182,0 @@ export interface IWorkspaceResources { |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
26984
15.25%295
37.21%0
-100%