@cobaltcore-dev/aurora 0.21.0 → 0.23.0
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/dist/client/{AuthProvider-p1e1DuKU.mjs → AuthProvider-CQ6Yppoh.mjs} +2 -2
- package/dist/client/{AuthProvider-p1e1DuKU.mjs.map → AuthProvider-CQ6Yppoh.mjs.map} +1 -1
- package/dist/client/{BucketToastNotifications-BGd2wVmh.mjs → BucketToastNotifications-BhPi4WWw.mjs} +3 -3
- package/dist/client/{BucketToastNotifications-BGd2wVmh.mjs.map → BucketToastNotifications-BhPi4WWw.mjs.map} +1 -1
- package/dist/client/{ContentHeader-CIAzorGI.mjs → ContentHeader-9KZdhOoA.mjs} +4 -3
- package/dist/client/{ContentHeader-CIAzorGI.mjs.map → ContentHeader-9KZdhOoA.mjs.map} +1 -1
- package/dist/client/{DeleteFlavorModal-lFMExcq_.mjs → DeleteFlavorModal-Be2qZo4w.mjs} +2 -2
- package/dist/client/{DeleteFlavorModal-lFMExcq_.mjs.map → DeleteFlavorModal-Be2qZo4w.mjs.map} +1 -1
- package/dist/client/{DeletePcaModal-Dg9dej-H.mjs → DeletePcaModal-CIFsGWyj.mjs} +4 -4
- package/dist/client/{DeletePcaModal-Dg9dej-H.mjs.map → DeletePcaModal-CIFsGWyj.mjs.map} +1 -1
- package/dist/client/{DetailsInfo-DwCo9P1o.mjs → DetailsInfo-CHVD7d-W.mjs} +3 -3
- package/dist/client/{DetailsInfo-DwCo9P1o.mjs.map → DetailsInfo-CHVD7d-W.mjs.map} +1 -1
- package/dist/client/{FiltersInput-cOaaRpcQ.mjs → FiltersInput-DqT08Ib-.mjs} +2 -2
- package/dist/client/{FiltersInput-cOaaRpcQ.mjs.map → FiltersInput-DqT08Ib-.mjs.map} +1 -1
- package/dist/client/{FloatingIpActionModals-CDF8LVtX.mjs → FloatingIpActionModals-BcceUHcg.mjs} +4 -4
- package/dist/client/{FloatingIpActionModals-CDF8LVtX.mjs.map → FloatingIpActionModals-BcceUHcg.mjs.map} +1 -1
- package/dist/client/{ImageToastNotifications-Dzq6jNTm.mjs → ImageToastNotifications-BGyX2J6j.mjs} +5 -5
- package/dist/client/ImageToastNotifications-BGyX2J6j.mjs.map +1 -0
- package/dist/client/{RouteError-BmZRk_ss.mjs → RouteError-Rm08PcxN.mjs} +2 -2
- package/dist/client/{RouteError-BmZRk_ss.mjs.map → RouteError-Rm08PcxN.mjs.map} +1 -1
- package/dist/client/Slot-CWb612-_.mjs +28 -0
- package/dist/client/Slot-CWb612-_.mjs.map +1 -0
- package/dist/client/{SortInput-DjaEHvcO.mjs → SortInput-D_q_jDfe.mjs} +2 -2
- package/dist/client/{SortInput-DjaEHvcO.mjs.map → SortInput-D_q_jDfe.mjs.map} +1 -1
- package/dist/client/{StatusError-CLB026fg.mjs → StatusError-2ZU1gFpu.mjs} +2 -2
- package/dist/client/{StatusError-CLB026fg.mjs.map → StatusError-2ZU1gFpu.mjs.map} +1 -1
- package/dist/client/{_auth-Dut7CaMR.mjs → _auth-D5_QNUos.mjs} +2 -2
- package/dist/client/{_auth-Dut7CaMR.mjs.map → _auth-D5_QNUos.mjs.map} +1 -1
- package/dist/client/{_flavorId-Cu1nWwOq.mjs → _flavorId-BsmqS9hP.mjs} +7 -7
- package/dist/client/{_flavorId-Cu1nWwOq.mjs.map → _flavorId-BsmqS9hP.mjs.map} +1 -1
- package/dist/client/{_flavorId-BsIWL0XK.mjs → _flavorId-CFmkmg2Y.mjs} +2 -2
- package/dist/client/{_flavorId-BsIWL0XK.mjs.map → _flavorId-CFmkmg2Y.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-B_M3gyMA.mjs → _floatingIpId-Bb9ZEJ6b.mjs} +6 -6
- package/dist/client/{_floatingIpId-B_M3gyMA.mjs.map → _floatingIpId-Bb9ZEJ6b.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-8-UPUV8M.mjs → _floatingIpId-Dzh6_JCI.mjs} +2 -2
- package/dist/client/{_floatingIpId-8-UPUV8M.mjs.map → _floatingIpId-Dzh6_JCI.mjs.map} +1 -1
- package/dist/client/{_imageId-D1Z0xIco.mjs → _imageId-C3As7sHE.mjs} +5 -5
- package/dist/client/{_imageId-D1Z0xIco.mjs.map → _imageId-C3As7sHE.mjs.map} +1 -1
- package/dist/client/{_pcaId-BcwGho7g.mjs → _pcaId-n0q0aDb6.mjs} +6 -6
- package/dist/client/{_pcaId-BcwGho7g.mjs.map → _pcaId-n0q0aDb6.mjs.map} +1 -1
- package/dist/client/{_projectId-DJLjspKf.mjs → _projectId-BuBIFdgG.mjs} +25 -24
- package/dist/client/{_projectId-DJLjspKf.mjs.map → _projectId-BuBIFdgG.mjs.map} +1 -1
- package/dist/client/{_projectId-B4ScifQf.mjs → _projectId-CAQkJHZ4.mjs} +3 -3
- package/dist/client/{_projectId-B4ScifQf.mjs.map → _projectId-CAQkJHZ4.mjs.map} +1 -1
- package/dist/client/_projectId-D-b7paXE.mjs +29 -0
- package/dist/client/_projectId-D-b7paXE.mjs.map +1 -0
- package/dist/client/{_projectId-CYq4KZXB.mjs → _projectId-DNZsNxJw.mjs} +4 -4
- package/dist/client/{_projectId-CYq4KZXB.mjs.map → _projectId-DNZsNxJw.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-B5-gJe1u.mjs → _securityGroupId-DFdNKa2l.mjs} +641 -504
- package/dist/client/_securityGroupId-DFdNKa2l.mjs.map +1 -0
- package/dist/client/{_securityGroupId-fPJWtDPU.mjs → _securityGroupId-DRkY3Gt6.mjs} +2 -2
- package/dist/client/_securityGroupId-DRkY3Gt6.mjs.map +1 -0
- package/dist/client/{_storageType-BkhbKG_G.mjs → _storageType-BKfQcpgp.mjs} +2 -2
- package/dist/client/{_storageType-BkhbKG_G.mjs.map → _storageType-BKfQcpgp.mjs.map} +1 -1
- package/dist/client/{_storageType-ByLL106s.mjs → _storageType-sMj9NEJz.mjs} +7 -7
- package/dist/client/{_storageType-ByLL106s.mjs.map → _storageType-sMj9NEJz.mjs.map} +1 -1
- package/dist/client/{about-B4sGnxeW.mjs → about-C8tTrQaW.mjs} +2 -2
- package/dist/client/{about-B4sGnxeW.mjs.map → about-C8tTrQaW.mjs.map} +1 -1
- package/dist/client/assets/objectDownload.worker-BAc5Au4B.js.map +1 -0
- package/dist/client/{aurora-Dp_NPGe8.mjs → aurora-jyvXcI4T.mjs} +2 -2
- package/dist/client/{aurora-Dp_NPGe8.mjs.map → aurora-jyvXcI4T.mjs.map} +1 -1
- package/dist/client/{build-DgeVmENN.mjs → build-CRLQyqu2.mjs} +2616 -3346
- package/dist/client/{build-DgeVmENN.mjs.map → build-CRLQyqu2.mjs.map} +1 -1
- package/dist/client/{flavors-CT1bHP61.mjs → flavors-BfTXqmoD.mjs} +6 -6
- package/dist/client/{flavors-CT1bHP61.mjs.map → flavors-BfTXqmoD.mjs.map} +1 -1
- package/dist/client/{flavors-q1j-y3e-.mjs → flavors-Dy-2mRGv.mjs} +2 -2
- package/dist/client/{flavors-q1j-y3e-.mjs.map → flavors-Dy-2mRGv.mjs.map} +1 -1
- package/dist/client/floatingips-zhNK6Xxn.mjs +562 -0
- package/dist/client/floatingips-zhNK6Xxn.mjs.map +1 -0
- package/dist/client/{hooks-D0wGUhRF.mjs → hooks-Bw3sHHOg.mjs} +2 -2
- package/dist/client/{hooks-D0wGUhRF.mjs.map → hooks-Bw3sHHOg.mjs.map} +1 -1
- package/dist/client/{images-CPYewah0.mjs → images-DPKUXryV.mjs} +2 -2
- package/dist/client/{images-CPYewah0.mjs.map → images-DPKUXryV.mjs.map} +1 -1
- package/dist/client/{images-BklcxYWi.mjs → images-DhZnqUG_.mjs} +29 -29
- package/dist/client/images-DhZnqUG_.mjs.map +1 -0
- package/dist/client/images-NBf2bV43.mjs.map +1 -1
- package/dist/client/index.js +301 -309
- package/dist/client/index.js.map +1 -1
- package/dist/client/{objects-DvIxpzGI.mjs → objects-BG1saVLZ.mjs} +1153 -862
- package/dist/client/objects-BG1saVLZ.mjs.map +1 -0
- package/dist/client/{objects-CEBrL7k-.mjs → objects-Dahys529.mjs} +2 -2
- package/dist/client/{objects-CEBrL7k-.mjs.map → objects-Dahys529.mjs.map} +1 -1
- package/dist/client/{pca-Ddk0YfgK.mjs → pca-B60iWWfG.mjs} +7 -7
- package/dist/client/{pca-Ddk0YfgK.mjs.map → pca-B60iWWfG.mjs.map} +1 -1
- package/dist/client/{pca-BAuZA0K3.mjs → pca-D0kKxHp4.mjs} +2 -2
- package/dist/client/{pca-BAuZA0K3.mjs.map → pca-D0kKxHp4.mjs.map} +1 -1
- package/dist/client/projects-yiK0HGSA.mjs.map +1 -1
- package/dist/client/routeInfo-CdTRlSxv.mjs +32 -0
- package/dist/client/routeInfo-CdTRlSxv.mjs.map +1 -0
- package/dist/client/{routes-BzBTVAjK.mjs → routes-BOf-GDMM.mjs} +41 -34
- package/dist/client/routes-BOf-GDMM.mjs.map +1 -0
- package/dist/client/{routes-DsisKFfG.mjs → routes-CtfnI-aY.mjs} +2 -2
- package/dist/client/routes-CtfnI-aY.mjs.map +1 -0
- package/dist/client/securitygroups-B8aLyFK7.mjs +17 -0
- package/dist/client/securitygroups-B8aLyFK7.mjs.map +1 -0
- package/dist/client/securitygroups-DRhFle2O.mjs +589 -0
- package/dist/client/securitygroups-DRhFle2O.mjs.map +1 -0
- package/dist/client/trpcClient-Di56hpVv.mjs +71 -0
- package/dist/client/trpcClient-Di56hpVv.mjs.map +1 -0
- package/dist/client/trpcClient.d.ts +40 -4
- package/dist/client/useListWithFiltering-aPTUNRaW.mjs +32 -0
- package/dist/client/useListWithFiltering-aPTUNRaW.mjs.map +1 -0
- package/dist/client/useSecurityGroupPermissions-BPS1ibWq.mjs +161 -0
- package/dist/client/useSecurityGroupPermissions-BPS1ibWq.mjs.map +1 -0
- package/dist/server/index.d.ts +56 -53
- package/dist/server/index.js +297 -20
- package/package.json +15 -15
- package/dist/client/EditSecurityGroupModal-BGPXglju.mjs +0 -137
- package/dist/client/EditSecurityGroupModal-BGPXglju.mjs.map +0 -1
- package/dist/client/ImageToastNotifications-Dzq6jNTm.mjs.map +0 -1
- package/dist/client/_projectId-DxgPaiA7.mjs +0 -25
- package/dist/client/_projectId-DxgPaiA7.mjs.map +0 -1
- package/dist/client/_securityGroupId-B5-gJe1u.mjs.map +0 -1
- package/dist/client/_securityGroupId-fPJWtDPU.mjs.map +0 -1
- package/dist/client/buildFilterParams-DoZzMKX9.mjs +0 -15
- package/dist/client/buildFilterParams-DoZzMKX9.mjs.map +0 -1
- package/dist/client/floatingips-DC5OrR8h.mjs +0 -434
- package/dist/client/floatingips-DC5OrR8h.mjs.map +0 -1
- package/dist/client/images-B5ktfqg6.mjs +0 -8
- package/dist/client/images-B5ktfqg6.mjs.map +0 -1
- package/dist/client/images-BklcxYWi.mjs.map +0 -1
- package/dist/client/objects-DvIxpzGI.mjs.map +0 -1
- package/dist/client/projects-DvSiI5Vg.mjs +0 -12
- package/dist/client/projects-DvSiI5Vg.mjs.map +0 -1
- package/dist/client/routeInfo-Ct5r4Gen.mjs +0 -56
- package/dist/client/routeInfo-Ct5r4Gen.mjs.map +0 -1
- package/dist/client/routes-BzBTVAjK.mjs.map +0 -1
- package/dist/client/routes-DsisKFfG.mjs.map +0 -1
- package/dist/client/securitygroups-JMvcJLpb.mjs +0 -440
- package/dist/client/securitygroups-JMvcJLpb.mjs.map +0 -1
- package/dist/client/trpcClient-BxcNKnhv.mjs +0 -65
- package/dist/client/trpcClient-BxcNKnhv.mjs.map +0 -1
- package/dist/client/useListWithFiltering-BuhE81I6.mjs +0 -157
- package/dist/client/useListWithFiltering-BuhE81I6.mjs.map +0 -1
package/dist/server/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as _trpc_server from '@trpc/server';
|
|
|
4
4
|
import { AnyRouter } from '@trpc/server';
|
|
5
5
|
import * as _cobaltcore_dev_signal_openstack from '@cobaltcore-dev/signal-openstack';
|
|
6
6
|
import { SignalOpenstackSessionType } from '@cobaltcore-dev/signal-openstack';
|
|
7
|
-
import
|
|
7
|
+
import * as _cobaltcore_dev_signal_openstack_dist_types_client from '@cobaltcore-dev/signal-openstack/dist/types/client';
|
|
8
8
|
import * as fastify_types_type_provider from 'fastify/types/type-provider';
|
|
9
9
|
import * as http from 'http';
|
|
10
10
|
import * as zod from 'zod';
|
|
@@ -126,22 +126,6 @@ interface AuroraPortalContext extends AuroraContext {
|
|
|
126
126
|
formFields?: FormFieldData;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
interface RequestParams {
|
|
130
|
-
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD";
|
|
131
|
-
path: string;
|
|
132
|
-
options?: {
|
|
133
|
-
host?: string;
|
|
134
|
-
headers?: Record<string, string>;
|
|
135
|
-
body?: string | object | FormData | Blob | ArrayBuffer | ReadableStream;
|
|
136
|
-
queryParams?: Record<string, string | string[] | number | boolean | null | undefined>;
|
|
137
|
-
signal?: AbortSignal;
|
|
138
|
-
debug?: boolean;
|
|
139
|
-
proxy?: ProxyConfig;
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
type ActionBody = NonNullable<RequestParams["options"]>["body"];
|
|
143
|
-
type ActionPath = RequestParams["path"];
|
|
144
|
-
|
|
145
129
|
declare const auroraRouter: _trpc_server.TRPCRouterBuilder<{
|
|
146
130
|
ctx: AuroraPortalContext;
|
|
147
131
|
meta: object;
|
|
@@ -179,18 +163,18 @@ declare const protectedProcedure: _trpc_server.TRPCProcedureBuilder<AuroraPortal
|
|
|
179
163
|
region?: string;
|
|
180
164
|
interfaceName?: string;
|
|
181
165
|
}) => string | null;
|
|
182
|
-
head: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
183
|
-
get: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
184
|
-
post: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
185
|
-
put: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
186
|
-
patch: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
187
|
-
del: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
188
|
-
cancellableHead: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
189
|
-
cancellableGet: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
190
|
-
cancellablePost: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
191
|
-
cancellablePut: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
192
|
-
cancellablePatch: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
193
|
-
cancellableDel: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
166
|
+
head: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
167
|
+
get: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
168
|
+
post: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
169
|
+
put: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
170
|
+
patch: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
171
|
+
del: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
172
|
+
cancellableHead: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
173
|
+
cancellableGet: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
174
|
+
cancellablePost: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
175
|
+
cancellablePut: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
176
|
+
cancellablePatch: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
177
|
+
cancellableDel: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
194
178
|
};
|
|
195
179
|
hasService: (name: string) => boolean;
|
|
196
180
|
terminate: () => Promise<void>;
|
|
@@ -353,18 +337,18 @@ declare const projectScopedProcedure: _trpc_server.TRPCProcedureBuilder<AuroraPo
|
|
|
353
337
|
region?: string;
|
|
354
338
|
interfaceName?: string;
|
|
355
339
|
}) => string | null;
|
|
356
|
-
head: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
357
|
-
get: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
358
|
-
post: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
359
|
-
put: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
360
|
-
patch: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
361
|
-
del: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
362
|
-
cancellableHead: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
363
|
-
cancellableGet: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
364
|
-
cancellablePost: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
365
|
-
cancellablePut: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
366
|
-
cancellablePatch: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
367
|
-
cancellableDel: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
340
|
+
head: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
341
|
+
get: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
342
|
+
post: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
343
|
+
put: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
344
|
+
patch: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
345
|
+
del: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
346
|
+
cancellableHead: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
347
|
+
cancellableGet: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
348
|
+
cancellablePost: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
349
|
+
cancellablePut: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
350
|
+
cancellablePatch: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
351
|
+
cancellableDel: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
368
352
|
};
|
|
369
353
|
hasService: (name: string) => boolean;
|
|
370
354
|
terminate: () => Promise<void>;
|
|
@@ -529,18 +513,18 @@ declare const domainScopedProcedure: _trpc_server.TRPCProcedureBuilder<AuroraPor
|
|
|
529
513
|
region?: string;
|
|
530
514
|
interfaceName?: string;
|
|
531
515
|
}) => string | null;
|
|
532
|
-
head: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
533
|
-
get: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
534
|
-
post: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
535
|
-
put: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
536
|
-
patch: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
537
|
-
del: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
538
|
-
cancellableHead: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
539
|
-
cancellableGet: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
540
|
-
cancellablePost: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
541
|
-
cancellablePut: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
542
|
-
cancellablePatch: (path: ActionPath, values: ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
543
|
-
cancellableDel: (path: ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
516
|
+
head: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
517
|
+
get: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
518
|
+
post: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
519
|
+
put: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
520
|
+
patch: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
521
|
+
del: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => Promise<Response>;
|
|
522
|
+
cancellableHead: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
523
|
+
cancellableGet: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
524
|
+
cancellablePost: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
525
|
+
cancellablePut: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
526
|
+
cancellablePatch: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, values: _cobaltcore_dev_signal_openstack_dist_types_client.ActionBody, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
527
|
+
cancellableDel: (path: _cobaltcore_dev_signal_openstack_dist_types_client.ActionPath, options?: _cobaltcore_dev_signal_openstack.ServiceActionOptions) => _cobaltcore_dev_signal_openstack.CancellableRequest<Response>;
|
|
544
528
|
};
|
|
545
529
|
hasService: (name: string) => boolean;
|
|
546
530
|
terminate: () => Promise<void>;
|
|
@@ -2423,6 +2407,25 @@ declare const buildBaseRouter: (policyDir: string) => _trpc_server.TRPCBuiltRout
|
|
|
2423
2407
|
}, void, any>;
|
|
2424
2408
|
meta: object;
|
|
2425
2409
|
}>;
|
|
2410
|
+
uploadObject: _trpc_server.TRPCMutationProcedure<{
|
|
2411
|
+
input: _trpc_server_http.OctetInput;
|
|
2412
|
+
output: {
|
|
2413
|
+
success: boolean;
|
|
2414
|
+
};
|
|
2415
|
+
meta: object;
|
|
2416
|
+
}>;
|
|
2417
|
+
watchUploadProgress: _trpc_server.TRPCSubscriptionProcedure<{
|
|
2418
|
+
input: {
|
|
2419
|
+
project_id: string;
|
|
2420
|
+
uploadId: string;
|
|
2421
|
+
};
|
|
2422
|
+
output: AsyncIterable<{
|
|
2423
|
+
uploaded: number;
|
|
2424
|
+
total: number;
|
|
2425
|
+
percent: number;
|
|
2426
|
+
}, void, any>;
|
|
2427
|
+
meta: object;
|
|
2428
|
+
}>;
|
|
2426
2429
|
}>>;
|
|
2427
2430
|
versioning: _trpc_server.TRPCBuiltRouter<{
|
|
2428
2431
|
ctx: AuroraPortalContext;
|
package/dist/server/index.js
CHANGED
|
@@ -6713,7 +6713,7 @@ var require_webidl = __commonJS({
|
|
|
6713
6713
|
var require_util2 = __commonJS({
|
|
6714
6714
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/web/fetch/util.js"(exports2, module2) {
|
|
6715
6715
|
"use strict";
|
|
6716
|
-
var { Transform:
|
|
6716
|
+
var { Transform: Transform4 } = require("stream");
|
|
6717
6717
|
var zlib = require("zlib");
|
|
6718
6718
|
var { redirectStatusSet, referrerPolicyTokens, badPortsSet } = require_constants3();
|
|
6719
6719
|
var { getGlobalOrigin } = require_global();
|
|
@@ -7333,7 +7333,7 @@ var require_util2 = __commonJS({
|
|
|
7333
7333
|
return contentRange;
|
|
7334
7334
|
}
|
|
7335
7335
|
__name(buildContentRange, "buildContentRange");
|
|
7336
|
-
var InflateStream = class InflateStream extends
|
|
7336
|
+
var InflateStream = class InflateStream extends Transform4 {
|
|
7337
7337
|
static {
|
|
7338
7338
|
__name(this, "InflateStream");
|
|
7339
7339
|
}
|
|
@@ -13114,7 +13114,7 @@ var require_readable = __commonJS({
|
|
|
13114
13114
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/api/readable.js"(exports2, module2) {
|
|
13115
13115
|
"use strict";
|
|
13116
13116
|
var assert = require("assert");
|
|
13117
|
-
var { Readable:
|
|
13117
|
+
var { Readable: Readable5 } = require("stream");
|
|
13118
13118
|
var { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = require_errors();
|
|
13119
13119
|
var util = require_util();
|
|
13120
13120
|
var { ReadableStreamFrom } = require_util();
|
|
@@ -13128,7 +13128,7 @@ var require_readable = __commonJS({
|
|
|
13128
13128
|
var kBytesRead = /* @__PURE__ */ Symbol("kBytesRead");
|
|
13129
13129
|
var noop = /* @__PURE__ */ __name(() => {
|
|
13130
13130
|
}, "noop");
|
|
13131
|
-
var BodyReadable = class BodyReadable extends
|
|
13131
|
+
var BodyReadable = class BodyReadable extends Readable5 {
|
|
13132
13132
|
static {
|
|
13133
13133
|
__name(this, "BodyReadable");
|
|
13134
13134
|
}
|
|
@@ -13531,7 +13531,7 @@ var require_api_request = __commonJS({
|
|
|
13531
13531
|
"use strict";
|
|
13532
13532
|
var assert = require("assert");
|
|
13533
13533
|
var { AsyncResource } = require("async_hooks");
|
|
13534
|
-
var { Readable:
|
|
13534
|
+
var { Readable: Readable5 } = require_readable();
|
|
13535
13535
|
var { InvalidArgumentError, RequestAbortedError } = require_errors();
|
|
13536
13536
|
var util = require_util();
|
|
13537
13537
|
function noop() {
|
|
@@ -13619,7 +13619,7 @@ var require_api_request = __commonJS({
|
|
|
13619
13619
|
const parsedHeaders = responseHeaders === "raw" ? util.parseHeaders(rawHeaders) : headers;
|
|
13620
13620
|
const contentType = parsedHeaders["content-type"];
|
|
13621
13621
|
const contentLength = parsedHeaders["content-length"];
|
|
13622
|
-
const res = new
|
|
13622
|
+
const res = new Readable5({
|
|
13623
13623
|
resume,
|
|
13624
13624
|
abort,
|
|
13625
13625
|
contentType,
|
|
@@ -13952,7 +13952,7 @@ var require_api_stream = __commonJS({
|
|
|
13952
13952
|
var require_api_pipeline = __commonJS({
|
|
13953
13953
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/api/api-pipeline.js"(exports2, module2) {
|
|
13954
13954
|
"use strict";
|
|
13955
|
-
var { Readable:
|
|
13955
|
+
var { Readable: Readable5, Duplex, PassThrough } = require("stream");
|
|
13956
13956
|
var assert = require("assert");
|
|
13957
13957
|
var { AsyncResource } = require("async_hooks");
|
|
13958
13958
|
var { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = require_errors();
|
|
@@ -13962,7 +13962,7 @@ var require_api_pipeline = __commonJS({
|
|
|
13962
13962
|
}
|
|
13963
13963
|
__name(noop, "noop");
|
|
13964
13964
|
var kResume = /* @__PURE__ */ Symbol("resume");
|
|
13965
|
-
var PipelineRequest = class PipelineRequest extends
|
|
13965
|
+
var PipelineRequest = class PipelineRequest extends Readable5 {
|
|
13966
13966
|
static {
|
|
13967
13967
|
__name(this, "PipelineRequest");
|
|
13968
13968
|
}
|
|
@@ -13984,7 +13984,7 @@ var require_api_pipeline = __commonJS({
|
|
|
13984
13984
|
callback(err);
|
|
13985
13985
|
}
|
|
13986
13986
|
};
|
|
13987
|
-
var PipelineResponse = class PipelineResponse extends
|
|
13987
|
+
var PipelineResponse = class PipelineResponse extends Readable5 {
|
|
13988
13988
|
static {
|
|
13989
13989
|
__name(this, "PipelineResponse");
|
|
13990
13990
|
}
|
|
@@ -15419,7 +15419,7 @@ var require_mock_pool = __commonJS({
|
|
|
15419
15419
|
var require_pending_interceptors_formatter = __commonJS({
|
|
15420
15420
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports2, module2) {
|
|
15421
15421
|
"use strict";
|
|
15422
|
-
var { Transform:
|
|
15422
|
+
var { Transform: Transform4 } = require("stream");
|
|
15423
15423
|
var { Console } = require("console");
|
|
15424
15424
|
var PERSISTENT = process.versions.icu ? "\u2705" : "Y ";
|
|
15425
15425
|
var NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N ";
|
|
@@ -15428,7 +15428,7 @@ var require_pending_interceptors_formatter = __commonJS({
|
|
|
15428
15428
|
__name(this, "PendingInterceptorsFormatter");
|
|
15429
15429
|
}
|
|
15430
15430
|
constructor({ disableColors } = {}) {
|
|
15431
|
-
this.transform = new
|
|
15431
|
+
this.transform = new Transform4({
|
|
15432
15432
|
transform(chunk, _enc, cb) {
|
|
15433
15433
|
cb(null, chunk);
|
|
15434
15434
|
}
|
|
@@ -18840,7 +18840,7 @@ var require_cache2 = __commonJS({
|
|
|
18840
18840
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/interceptor/cache.js"(exports2, module2) {
|
|
18841
18841
|
"use strict";
|
|
18842
18842
|
var assert = require("assert");
|
|
18843
|
-
var { Readable:
|
|
18843
|
+
var { Readable: Readable5 } = require("stream");
|
|
18844
18844
|
var util = require_util();
|
|
18845
18845
|
var CacheHandler = require_cache_handler();
|
|
18846
18846
|
var MemoryCacheStore = require_memory_cache_store();
|
|
@@ -18934,7 +18934,7 @@ var require_cache2 = __commonJS({
|
|
|
18934
18934
|
}
|
|
18935
18935
|
__name(handleUncachedResponse, "handleUncachedResponse");
|
|
18936
18936
|
function sendCachedValue(handler, opts, result, age, context, isStale2) {
|
|
18937
|
-
const stream = util.isStream(result.body) ? result.body :
|
|
18937
|
+
const stream = util.isStream(result.body) ? result.body : Readable5.from(result.body ?? []);
|
|
18938
18938
|
assert(!stream.destroyed, "stream should not be destroyed");
|
|
18939
18939
|
assert(!stream.readableDidRead, "stream should not be readableDidRead");
|
|
18940
18940
|
const controller = {
|
|
@@ -22010,7 +22010,7 @@ var require_fetch = __commonJS({
|
|
|
22010
22010
|
var { safelyExtractBody, extractBody } = require_body();
|
|
22011
22011
|
var { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet } = require_constants3();
|
|
22012
22012
|
var EE = require("events");
|
|
22013
|
-
var { Readable:
|
|
22013
|
+
var { Readable: Readable5, pipeline: pipeline2, finished, isErrored, isReadable } = require("stream");
|
|
22014
22014
|
var { addAbortListener, bufferToLowerCasedHeaderName } = require_util();
|
|
22015
22015
|
var { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url();
|
|
22016
22016
|
var { getGlobalDispatcher } = require_global2();
|
|
@@ -22963,7 +22963,7 @@ var require_fetch = __commonJS({
|
|
|
22963
22963
|
}
|
|
22964
22964
|
}
|
|
22965
22965
|
const location = headersList.get("location", true);
|
|
22966
|
-
this.body = new
|
|
22966
|
+
this.body = new Readable5({
|
|
22967
22967
|
read: resume
|
|
22968
22968
|
});
|
|
22969
22969
|
const willFollow = location && request.redirect === "follow" && redirectStatusSet.has(status);
|
|
@@ -26540,7 +26540,7 @@ var require_util6 = __commonJS({
|
|
|
26540
26540
|
var require_eventsource_stream = __commonJS({
|
|
26541
26541
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports2, module2) {
|
|
26542
26542
|
"use strict";
|
|
26543
|
-
var { Transform:
|
|
26543
|
+
var { Transform: Transform4 } = require("stream");
|
|
26544
26544
|
var { isASCIINumber, isValidLastEventId } = require_util6();
|
|
26545
26545
|
var BOM = [
|
|
26546
26546
|
239,
|
|
@@ -26551,7 +26551,7 @@ var require_eventsource_stream = __commonJS({
|
|
|
26551
26551
|
var CR = 13;
|
|
26552
26552
|
var COLON = 58;
|
|
26553
26553
|
var SPACE = 32;
|
|
26554
|
-
var EventSourceStream = class EventSourceStream extends
|
|
26554
|
+
var EventSourceStream = class EventSourceStream extends Transform4 {
|
|
26555
26555
|
static {
|
|
26556
26556
|
__name(this, "EventSourceStream");
|
|
26557
26557
|
}
|
|
@@ -33548,6 +33548,45 @@ var cephProtectedProcedure = cephCredentialMiddleware.use(/* @__PURE__ */ __name
|
|
|
33548
33548
|
ctx
|
|
33549
33549
|
});
|
|
33550
33550
|
}, "requireCredentials"));
|
|
33551
|
+
var cephUploadProcedure = protectedProcedure.use(/* @__PURE__ */ __name(async function resolveCephForUpload(opts) {
|
|
33552
|
+
const { ctx, next } = opts;
|
|
33553
|
+
const uploadProjectId = ctx.req.headers["x-upload-project-id"]?.trim();
|
|
33554
|
+
if (!uploadProjectId) {
|
|
33555
|
+
throw new import_server11.TRPCError({
|
|
33556
|
+
code: "BAD_REQUEST",
|
|
33557
|
+
message: "x-upload-project-id header is required for uploads"
|
|
33558
|
+
});
|
|
33559
|
+
}
|
|
33560
|
+
const openstackSession = await ctx.rescopeSession({
|
|
33561
|
+
projectId: uploadProjectId
|
|
33562
|
+
});
|
|
33563
|
+
if (!openstackSession) {
|
|
33564
|
+
throw new import_server11.TRPCError({
|
|
33565
|
+
code: "UNAUTHORIZED",
|
|
33566
|
+
message: "Failed to scope session to project. User may not have access to this project."
|
|
33567
|
+
});
|
|
33568
|
+
}
|
|
33569
|
+
const scopedCtx = {
|
|
33570
|
+
...ctx,
|
|
33571
|
+
openstack: openstackSession
|
|
33572
|
+
};
|
|
33573
|
+
const credentials = await resolveEC2Credential(scopedCtx);
|
|
33574
|
+
if (!credentials) {
|
|
33575
|
+
throw new import_server11.TRPCError({
|
|
33576
|
+
code: "FORBIDDEN",
|
|
33577
|
+
message: NO_CEPH_CREDENTIALS
|
|
33578
|
+
});
|
|
33579
|
+
}
|
|
33580
|
+
const { endpoint, region } = resolveS3Config(scopedCtx);
|
|
33581
|
+
return next({
|
|
33582
|
+
ctx: {
|
|
33583
|
+
...scopedCtx,
|
|
33584
|
+
cephCredentials: credentials,
|
|
33585
|
+
cephRegion: region,
|
|
33586
|
+
getCephClient: /* @__PURE__ */ __name(() => createS3Client(credentials.access, credentials.secret, endpoint, region), "getCephClient")
|
|
33587
|
+
}
|
|
33588
|
+
});
|
|
33589
|
+
}, "resolveCephForUpload"));
|
|
33551
33590
|
|
|
33552
33591
|
// src/server/Storage/helpers/s3ErrorMapper.ts
|
|
33553
33592
|
var import_server12 = require("@trpc/server");
|
|
@@ -34073,11 +34112,20 @@ var containerRouter = {
|
|
|
34073
34112
|
// src/server/Storage/routers/ceph/objectRouter.ts
|
|
34074
34113
|
var import_client_s33 = require("@aws-sdk/client-s3");
|
|
34075
34114
|
var import_server13 = require("@trpc/server");
|
|
34115
|
+
var import_http3 = require("@trpc/server/http");
|
|
34116
|
+
var import_node_stream3 = require("stream");
|
|
34076
34117
|
var import_zod14 = require("zod");
|
|
34077
34118
|
var import_node_events3 = __toESM(require("events"));
|
|
34078
34119
|
var downloadProgressEmitter2 = new import_node_events3.default();
|
|
34079
34120
|
downloadProgressEmitter2.setMaxListeners(0);
|
|
34080
34121
|
var downloadProgressMap2 = /* @__PURE__ */ new Map();
|
|
34122
|
+
var uploadProgressEmitter3 = new import_node_events3.default();
|
|
34123
|
+
uploadProgressEmitter3.setMaxListeners(0);
|
|
34124
|
+
var uploadProgressMap2 = /* @__PURE__ */ new Map();
|
|
34125
|
+
var watchUploadProgressInputSchema = import_zod14.z.object({
|
|
34126
|
+
project_id: import_zod14.z.string(),
|
|
34127
|
+
uploadId: import_zod14.z.string()
|
|
34128
|
+
});
|
|
34081
34129
|
var deleteAllObjectsInputSchema = import_zod14.z.object({
|
|
34082
34130
|
project_id: import_zod14.z.string(),
|
|
34083
34131
|
containerName: import_zod14.z.string().min(1),
|
|
@@ -34812,6 +34860,223 @@ var objectRouter = {
|
|
|
34812
34860
|
downloadProgressEmitter2.off(`progress:${scopedDownloadId}:complete`, onComplete);
|
|
34813
34861
|
downloadProgressEmitter2.off(`progress:${scopedDownloadId}:error`, onError);
|
|
34814
34862
|
}
|
|
34863
|
+
}),
|
|
34864
|
+
// ============================================================================
|
|
34865
|
+
// UPLOAD OPERATIONS
|
|
34866
|
+
// ============================================================================
|
|
34867
|
+
/**
|
|
34868
|
+
* Upload a file to a Ceph (S3) bucket via octet-stream.
|
|
34869
|
+
*
|
|
34870
|
+
* Mirrors the Swift `uploadObject` implementation (see swiftRouter.ts) so the
|
|
34871
|
+
* client-side UploadObjectModal / watch-progress logic can be reused
|
|
34872
|
+
* unchanged, but targets S3 `PutObjectCommand` instead of a raw Swift PUT.
|
|
34873
|
+
*
|
|
34874
|
+
* Uses `octetInputParser` so tRPC hands us the request body as a true
|
|
34875
|
+
* ReadableStream — never buffered — enabling per-chunk progress tracking via
|
|
34876
|
+
* a Node.js Transform, identical to swiftRouter.uploadObject.
|
|
34877
|
+
*
|
|
34878
|
+
* Metadata travels as custom request headers (the tRPC input is the raw file):
|
|
34879
|
+
* - x-upload-project-id (string, required) — project id, used to scope the
|
|
34880
|
+
* progress key so cross-tenant
|
|
34881
|
+
* observation is impossible
|
|
34882
|
+
* - x-upload-container (string, required) — target bucket name
|
|
34883
|
+
* - x-upload-object (string, required) — full object key, e.g. "folder/file.txt"
|
|
34884
|
+
* - x-upload-type (string, optional) — MIME type detected client-side
|
|
34885
|
+
* - x-upload-size (string, required) — file size in bytes; S3 PutObject
|
|
34886
|
+
* with a streaming Body needs a
|
|
34887
|
+
* ContentLength
|
|
34888
|
+
* - x-upload-id (string, required) — client-computed id for watchUploadProgress
|
|
34889
|
+
*
|
|
34890
|
+
* The client computes `uploadId` as "<bucket>:<objectKey>:<uuid>" before
|
|
34891
|
+
* calling this mutation so the subscription can be opened in advance. The
|
|
34892
|
+
* UUID suffix keeps concurrent uploads of the same key from colliding in the
|
|
34893
|
+
* progress map; the id is further scoped with the project id on the BFF.
|
|
34894
|
+
*
|
|
34895
|
+
* Uses `cephUploadProcedure` (not `cephProtectedProcedure`): octetInputParser
|
|
34896
|
+
* can't chain onto the project-scoped procedure's bundled input, so uploads
|
|
34897
|
+
* run on a base procedure that rescopes from `x-upload-project-id` and still
|
|
34898
|
+
* provides `getCephClient`. See cephProcedure.ts.
|
|
34899
|
+
*/
|
|
34900
|
+
uploadObject: cephUploadProcedure.input(import_http3.octetInputParser).mutation(async ({ input, ctx }) => {
|
|
34901
|
+
const s3 = ctx.getCephClient();
|
|
34902
|
+
const headers = ctx.req.headers;
|
|
34903
|
+
const projectId = headers["x-upload-project-id"]?.trim();
|
|
34904
|
+
const bucket = headers["x-upload-container"]?.trim();
|
|
34905
|
+
const objectKey = headers["x-upload-object"]?.trim();
|
|
34906
|
+
const contentType = headers["x-upload-type"];
|
|
34907
|
+
const fileSizeHeader = headers["x-upload-size"];
|
|
34908
|
+
const uploadId = headers["x-upload-id"]?.trim();
|
|
34909
|
+
if (!projectId) {
|
|
34910
|
+
throw new import_server13.TRPCError({
|
|
34911
|
+
code: "BAD_REQUEST",
|
|
34912
|
+
message: "x-upload-project-id header is required"
|
|
34913
|
+
});
|
|
34914
|
+
}
|
|
34915
|
+
if (!bucket) {
|
|
34916
|
+
throw new import_server13.TRPCError({
|
|
34917
|
+
code: "BAD_REQUEST",
|
|
34918
|
+
message: "x-upload-container header is required"
|
|
34919
|
+
});
|
|
34920
|
+
}
|
|
34921
|
+
if (!objectKey) {
|
|
34922
|
+
throw new import_server13.TRPCError({
|
|
34923
|
+
code: "BAD_REQUEST",
|
|
34924
|
+
message: "x-upload-object header is required"
|
|
34925
|
+
});
|
|
34926
|
+
}
|
|
34927
|
+
if (!uploadId) {
|
|
34928
|
+
throw new import_server13.TRPCError({
|
|
34929
|
+
code: "BAD_REQUEST",
|
|
34930
|
+
message: "x-upload-id header is required"
|
|
34931
|
+
});
|
|
34932
|
+
}
|
|
34933
|
+
const fileSize = Number(fileSizeHeader);
|
|
34934
|
+
if (!Number.isFinite(fileSize) || fileSize < 0) {
|
|
34935
|
+
throw new import_server13.TRPCError({
|
|
34936
|
+
code: "BAD_REQUEST",
|
|
34937
|
+
message: "x-upload-size header must be a non-negative number"
|
|
34938
|
+
});
|
|
34939
|
+
}
|
|
34940
|
+
const scopedUploadId = `${projectId}:${uploadId}`;
|
|
34941
|
+
uploadProgressMap2.set(scopedUploadId, {
|
|
34942
|
+
uploaded: 0,
|
|
34943
|
+
total: fileSize,
|
|
34944
|
+
percent: 0
|
|
34945
|
+
});
|
|
34946
|
+
try {
|
|
34947
|
+
const progress = uploadProgressMap2.get(scopedUploadId);
|
|
34948
|
+
const fileStream = import_node_stream3.Readable.fromWeb(input);
|
|
34949
|
+
const progressTracker = new import_node_stream3.Transform({
|
|
34950
|
+
async transform(chunk, _encoding, callback) {
|
|
34951
|
+
progress.uploaded += chunk.length;
|
|
34952
|
+
progress.percent = progress.total > 0 ? Math.round(progress.uploaded / progress.total * 100) : 0;
|
|
34953
|
+
uploadProgressEmitter3.emit(`progress:${scopedUploadId}`, {
|
|
34954
|
+
...progress
|
|
34955
|
+
});
|
|
34956
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
34957
|
+
callback(null, chunk);
|
|
34958
|
+
}
|
|
34959
|
+
});
|
|
34960
|
+
const isAbortLike = /* @__PURE__ */ __name((err) => {
|
|
34961
|
+
const code = err?.code;
|
|
34962
|
+
return code === "ECONNRESET" || code === "ECONNABORTED" || !!ctx.req.signal?.aborted;
|
|
34963
|
+
}, "isAbortLike");
|
|
34964
|
+
fileStream.on("error", (err) => {
|
|
34965
|
+
if (isAbortLike(err)) return;
|
|
34966
|
+
progressTracker.destroy(err);
|
|
34967
|
+
});
|
|
34968
|
+
const trackedStream = fileStream.pipe(progressTracker);
|
|
34969
|
+
await s3.send(new import_client_s33.PutObjectCommand({
|
|
34970
|
+
Bucket: bucket,
|
|
34971
|
+
Key: objectKey,
|
|
34972
|
+
Body: trackedStream,
|
|
34973
|
+
ContentLength: fileSize,
|
|
34974
|
+
ContentType: contentType || "application/octet-stream"
|
|
34975
|
+
}), {
|
|
34976
|
+
abortSignal: ctx.req.signal
|
|
34977
|
+
});
|
|
34978
|
+
uploadProgressEmitter3.emit(`progress:${scopedUploadId}:complete`);
|
|
34979
|
+
return {
|
|
34980
|
+
success: true
|
|
34981
|
+
};
|
|
34982
|
+
} catch (error) {
|
|
34983
|
+
try {
|
|
34984
|
+
mapS3ErrorToTRPCError(error, {
|
|
34985
|
+
operation: "upload object",
|
|
34986
|
+
bucket,
|
|
34987
|
+
key: objectKey
|
|
34988
|
+
});
|
|
34989
|
+
} catch (mappedError) {
|
|
34990
|
+
if (!ctx.req.signal?.aborted) {
|
|
34991
|
+
uploadProgressEmitter3.emit(`progress:${scopedUploadId}:error`, mappedError);
|
|
34992
|
+
}
|
|
34993
|
+
throw mappedError;
|
|
34994
|
+
}
|
|
34995
|
+
throw error;
|
|
34996
|
+
} finally {
|
|
34997
|
+
uploadProgressMap2.delete(scopedUploadId);
|
|
34998
|
+
}
|
|
34999
|
+
}),
|
|
35000
|
+
/**
|
|
35001
|
+
* Subscribe to real-time upload progress for a given `uploadId`.
|
|
35002
|
+
*
|
|
35003
|
+
* Mirrors `watchDownloadProgress`. The `uploadId` is computed client-side as
|
|
35004
|
+
* "<bucket>:<objectKey>:<uuid>" and passed to `uploadObject` before the
|
|
35005
|
+
* mutation starts, so this subscription can be opened in advance. Yields
|
|
35006
|
+
* `{ uploaded, total, percent }` as bytes flow through the server; completes
|
|
35007
|
+
* when the upload finishes or throws on a non-abort error.
|
|
35008
|
+
*/
|
|
35009
|
+
watchUploadProgress: cephProtectedProcedure.input(watchUploadProgressInputSchema).subscription(async function* ({ input }) {
|
|
35010
|
+
const { project_id, uploadId } = input;
|
|
35011
|
+
const scopedUploadId = `${project_id}:${uploadId}`;
|
|
35012
|
+
const current = uploadProgressMap2.get(scopedUploadId);
|
|
35013
|
+
if (current) {
|
|
35014
|
+
yield {
|
|
35015
|
+
...current
|
|
35016
|
+
};
|
|
35017
|
+
}
|
|
35018
|
+
const queue = [];
|
|
35019
|
+
let isComplete = false;
|
|
35020
|
+
let isError = false;
|
|
35021
|
+
let caughtError;
|
|
35022
|
+
let waitResolver = null;
|
|
35023
|
+
const onProgress = /* @__PURE__ */ __name((data) => {
|
|
35024
|
+
queue.push(data);
|
|
35025
|
+
waitResolver?.();
|
|
35026
|
+
waitResolver = null;
|
|
35027
|
+
}, "onProgress");
|
|
35028
|
+
const onComplete = /* @__PURE__ */ __name(() => {
|
|
35029
|
+
isComplete = true;
|
|
35030
|
+
waitResolver?.();
|
|
35031
|
+
waitResolver = null;
|
|
35032
|
+
}, "onComplete");
|
|
35033
|
+
const onError = /* @__PURE__ */ __name((err) => {
|
|
35034
|
+
isError = true;
|
|
35035
|
+
caughtError = err instanceof Error ? err : new Error(String(err));
|
|
35036
|
+
waitResolver?.();
|
|
35037
|
+
waitResolver = null;
|
|
35038
|
+
}, "onError");
|
|
35039
|
+
uploadProgressEmitter3.on(`progress:${scopedUploadId}`, onProgress);
|
|
35040
|
+
uploadProgressEmitter3.on(`progress:${scopedUploadId}:complete`, onComplete);
|
|
35041
|
+
uploadProgressEmitter3.on(`progress:${scopedUploadId}:error`, onError);
|
|
35042
|
+
try {
|
|
35043
|
+
while (!isComplete && !isError) {
|
|
35044
|
+
while (queue.length > 0) {
|
|
35045
|
+
yield {
|
|
35046
|
+
...queue.shift()
|
|
35047
|
+
};
|
|
35048
|
+
}
|
|
35049
|
+
if (!isComplete && !isError) {
|
|
35050
|
+
let timeoutId;
|
|
35051
|
+
const timeout = new Promise((resolve) => {
|
|
35052
|
+
timeoutId = setTimeout(resolve, 3e4);
|
|
35053
|
+
});
|
|
35054
|
+
try {
|
|
35055
|
+
await Promise.race([
|
|
35056
|
+
new Promise((resolve) => {
|
|
35057
|
+
waitResolver = resolve;
|
|
35058
|
+
}),
|
|
35059
|
+
timeout
|
|
35060
|
+
]);
|
|
35061
|
+
} finally {
|
|
35062
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
35063
|
+
}
|
|
35064
|
+
if (!isComplete && !isError && queue.length === 0) break;
|
|
35065
|
+
}
|
|
35066
|
+
}
|
|
35067
|
+
while (queue.length > 0) {
|
|
35068
|
+
yield {
|
|
35069
|
+
...queue.shift()
|
|
35070
|
+
};
|
|
35071
|
+
}
|
|
35072
|
+
if (isError && caughtError) {
|
|
35073
|
+
throw caughtError;
|
|
35074
|
+
}
|
|
35075
|
+
} finally {
|
|
35076
|
+
uploadProgressEmitter3.off(`progress:${scopedUploadId}`, onProgress);
|
|
35077
|
+
uploadProgressEmitter3.off(`progress:${scopedUploadId}:complete`, onComplete);
|
|
35078
|
+
uploadProgressEmitter3.off(`progress:${scopedUploadId}:error`, onError);
|
|
35079
|
+
}
|
|
34815
35080
|
})
|
|
34816
35081
|
};
|
|
34817
35082
|
|
|
@@ -38120,7 +38385,7 @@ __name(createContext, "createContext");
|
|
|
38120
38385
|
|
|
38121
38386
|
// src/server/server.ts
|
|
38122
38387
|
var import_path2 = __toESM(require("path"));
|
|
38123
|
-
var
|
|
38388
|
+
var import_node_stream4 = require("stream");
|
|
38124
38389
|
var import_zod26 = require("zod");
|
|
38125
38390
|
|
|
38126
38391
|
// src/server/aurora-fastify-plugins/csrfProtection.ts
|
|
@@ -38272,7 +38537,7 @@ async function createServer(config) {
|
|
|
38272
38537
|
message: "Glance service unavailable"
|
|
38273
38538
|
});
|
|
38274
38539
|
}
|
|
38275
|
-
const webStream =
|
|
38540
|
+
const webStream = import_node_stream4.Readable.toWeb(data.file);
|
|
38276
38541
|
await glance.put(`v2/images/${imageId}/file`, webStream, {
|
|
38277
38542
|
headers: {
|
|
38278
38543
|
Accept: "application/json",
|
|
@@ -38327,7 +38592,19 @@ async function createServer(config) {
|
|
|
38327
38592
|
}
|
|
38328
38593
|
});
|
|
38329
38594
|
server.register(import_helmet.default, {
|
|
38330
|
-
contentSecurityPolicy: isProduction ?
|
|
38595
|
+
contentSecurityPolicy: isProduction ? {
|
|
38596
|
+
directives: {
|
|
38597
|
+
...import_helmet.default.contentSecurityPolicy.getDefaultDirectives(),
|
|
38598
|
+
// The object-download worker is bundled inline (Vite's ?worker&inline)
|
|
38599
|
+
// and so is started from a blob: URL. Helmet's defaults don't set
|
|
38600
|
+
// worker-src at all, which makes the browser fall back to
|
|
38601
|
+
// script-src 'self' — blocking blob: and the worker with it.
|
|
38602
|
+
"worker-src": [
|
|
38603
|
+
"'self'",
|
|
38604
|
+
"blob:"
|
|
38605
|
+
]
|
|
38606
|
+
}
|
|
38607
|
+
} : false
|
|
38331
38608
|
});
|
|
38332
38609
|
if (isProduction) {
|
|
38333
38610
|
await server.register(import_static.default, {
|