@geolens/sdk 1.17.0 → 1.19.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/README.md +10 -1
- package/dist/auth.d.ts +13 -17
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +51 -18
- package/dist/auth.js.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/sdk.gen.d.ts +233 -106
- package/dist/client/sdk.gen.d.ts.map +1 -1
- package/dist/client/sdk.gen.js +264 -105
- package/dist/client/sdk.gen.js.map +1 -1
- package/dist/client/types.gen.d.ts +556 -49
- package/dist/client/types.gen.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/client/sdk.gen.js
CHANGED
|
@@ -216,7 +216,7 @@ export const bulkRevokeAdminEmbedTokensBulkRevokePost = (options) => (options.cl
|
|
|
216
216
|
/**
|
|
217
217
|
* Get Embedding Stats
|
|
218
218
|
*
|
|
219
|
-
* Return
|
|
219
|
+
* Return embedding coverage and the state of the backfill runs (admin only).
|
|
220
220
|
*/
|
|
221
221
|
export const getEmbeddingStatsAdminEmbeddingStatsGet = (options) => (options?.client ?? client).get({
|
|
222
222
|
security: [
|
|
@@ -531,10 +531,48 @@ export const rejectUserAdminUsersUserIdRejectPost = (options) => (options.client
|
|
|
531
531
|
url: '/admin/users/{user_id}/reject/',
|
|
532
532
|
...options
|
|
533
533
|
});
|
|
534
|
+
/**
|
|
535
|
+
* Reset User Password
|
|
536
|
+
*
|
|
537
|
+
* Set a user's password (admin only).
|
|
538
|
+
*
|
|
539
|
+
* feat(#1715): the login page tells a locked-out user to ask an
|
|
540
|
+
* administrator, and there was nothing for the administrator to do. This is
|
|
541
|
+
* the recovery path, so it asks for no current password -- holding
|
|
542
|
+
* manage_users is the whole authorization, and the audit row is what makes
|
|
543
|
+
* the action answerable for. The submitted value reaches the hash column and
|
|
544
|
+
* nowhere else: not the audit details, not a log line, not the response.
|
|
545
|
+
*
|
|
546
|
+
* 422 when the target signs in through an identity provider (no local
|
|
547
|
+
* password to replace), 404 when no such user exists -- both via the shared
|
|
548
|
+
* _raise_on_error mapping the sibling lifecycle routes use.
|
|
549
|
+
*
|
|
550
|
+
* Resetting your own password is permitted and ends every session the
|
|
551
|
+
* account holds, including the one making this request, because the reset
|
|
552
|
+
* revokes the account's credentials. That is the same consequence
|
|
553
|
+
* POST /auth/change-password/ has for the caller who invokes it.
|
|
554
|
+
*/
|
|
555
|
+
export const resetUserPasswordAdminUsersUserIdResetPasswordPost = (options) => (options.client ?? client).post({
|
|
556
|
+
security: [
|
|
557
|
+
{ scheme: 'bearer', type: 'http' },
|
|
558
|
+
{ name: 'X-Api-Key', type: 'apiKey' },
|
|
559
|
+
{
|
|
560
|
+
in: 'query',
|
|
561
|
+
name: 'api_key',
|
|
562
|
+
type: 'apiKey'
|
|
563
|
+
}
|
|
564
|
+
],
|
|
565
|
+
url: '/admin/users/{user_id}/reset-password/',
|
|
566
|
+
...options,
|
|
567
|
+
headers: {
|
|
568
|
+
'Content-Type': 'application/json',
|
|
569
|
+
...options.headers
|
|
570
|
+
}
|
|
571
|
+
});
|
|
534
572
|
/**
|
|
535
573
|
* Ai Availability Endpoint
|
|
536
574
|
*
|
|
537
|
-
* Report whether builder AI chat is usable (
|
|
575
|
+
* Report whether builder AI chat is usable (#338).
|
|
538
576
|
*
|
|
539
577
|
* Permission-gated on ``use_ai_chat`` so non-admin editors (who cannot read
|
|
540
578
|
* ``/admin/ai-status``) can learn availability. Returns ``available=false``
|
|
@@ -764,14 +802,14 @@ export const generateMetadataSummaryAiMetadataSummaryPost = (options) => (option
|
|
|
764
802
|
*
|
|
765
803
|
* Return the column-DDL audit history for a dataset.
|
|
766
804
|
*
|
|
767
|
-
*
|
|
768
|
-
*
|
|
805
|
+
* Surfaces the column-DDL events to dataset owners so they can detect
|
|
806
|
+
* editor-initiated schema changes.
|
|
769
807
|
*
|
|
770
808
|
* Access control (AGENTS.md Pre-Commit Checklist Rule 1):
|
|
771
809
|
* - Owner: 200 with their own dataset's DDL history
|
|
772
810
|
* - Admin: 200 (admin access is always allowed)
|
|
773
811
|
* - Anyone else — including authenticated readers of a PUBLIC dataset: 404
|
|
774
|
-
* via check_dataset_write_access. fix(#458
|
|
812
|
+
* via check_dataset_write_access. fix(#458): the feed previously used
|
|
775
813
|
* check_dataset_access (read visibility), which let any logged-in user
|
|
776
814
|
* enumerate editor usernames/user_ids on public datasets, contradicting
|
|
777
815
|
* this owner-facing contract.
|
|
@@ -886,7 +924,7 @@ export const configAuthConfigGet = (options) => (options?.client ?? client).get(
|
|
|
886
924
|
*
|
|
887
925
|
* Mint a short-lived download-scoped JWT for a single dataset.
|
|
888
926
|
*
|
|
889
|
-
*
|
|
927
|
+
* The COG download URL path requires a
|
|
890
928
|
* ``typ='download'`` JWT on the ``?token=`` query parameter — session JWTs
|
|
891
929
|
* are rejected. This endpoint issues that token after verifying the caller
|
|
892
930
|
* has read access to the dataset.
|
|
@@ -931,7 +969,7 @@ export const loginAuthLoginPost = (options) => (options.client ?? client).post({
|
|
|
931
969
|
*
|
|
932
970
|
* Revoke all refresh tokens and bump token_version for the current user.
|
|
933
971
|
*
|
|
934
|
-
*
|
|
972
|
+
* revoke_all_tokens bumps User.token_version so the
|
|
935
973
|
* access JWT used for this logout call (and any other outstanding access JWTs)
|
|
936
974
|
* are rejected on the next authenticated request — closing the
|
|
937
975
|
* "logout doesn't invalidate the access JWT" gap.
|
|
@@ -1029,7 +1067,7 @@ export const listPublicProvidersAuthOauthProvidersGet = (options) => (options?.c
|
|
|
1029
1067
|
*
|
|
1030
1068
|
* Handle IdP callback: exchange code, find/create user, issue JWT, redirect to frontend.
|
|
1031
1069
|
*
|
|
1032
|
-
*
|
|
1070
|
+
* The frontend redirect carries access tokens in the URL
|
|
1033
1071
|
* fragment. Without explicit-config resolution, an attacker controlling
|
|
1034
1072
|
* ``X-Forwarded-Host`` could steer the post-callback redirect to
|
|
1035
1073
|
* attacker.com and capture the tokens. Force explicit-config resolution
|
|
@@ -1041,7 +1079,7 @@ export const oauthCallbackAuthOauthProviderSlugCallbackGet = (options) => (optio
|
|
|
1041
1079
|
*
|
|
1042
1080
|
* Redirect user to the IdP authorization URL with PKCE parameters.
|
|
1043
1081
|
*
|
|
1044
|
-
*
|
|
1082
|
+
* The redirect_uri is handed to the IdP, where an
|
|
1045
1083
|
* attacker-controlled origin (via ``X-Forwarded-Host``) would otherwise
|
|
1046
1084
|
* enable auth-code theft. We force explicit-config resolution by
|
|
1047
1085
|
* passing ``for_external_use=True``; falling back to the request-origin
|
|
@@ -1092,7 +1130,7 @@ export const registerAuthRegisterPost = (options) => (options.client ?? client).
|
|
|
1092
1130
|
*
|
|
1093
1131
|
* Re-issue and re-send a verification email.
|
|
1094
1132
|
*
|
|
1095
|
-
*
|
|
1133
|
+
* Enumeration-safe: ALWAYS returns the same 200 body
|
|
1096
1134
|
* regardless of whether the email exists, is unknown, or is already verified.
|
|
1097
1135
|
* Send errors are logged server-side only and never branch the HTTP response.
|
|
1098
1136
|
*/
|
|
@@ -1109,12 +1147,12 @@ export const resendVerificationAuthResendVerificationPost = (options) => (option
|
|
|
1109
1147
|
*
|
|
1110
1148
|
* Redeem a verification token to activate the account.
|
|
1111
1149
|
*
|
|
1112
|
-
*
|
|
1150
|
+
* A valid single-use expiring token flips email_verified=True,
|
|
1113
1151
|
* is_active=True, and status="active" so the user can log in via the
|
|
1114
1152
|
* existing auth gate in dependencies.py.
|
|
1115
1153
|
*
|
|
1116
1154
|
* Expired, unknown, and already-consumed tokens all return the same
|
|
1117
|
-
* "Invalid or expired" error (enumeration-safe
|
|
1155
|
+
* "Invalid or expired" error (enumeration-safe).
|
|
1118
1156
|
*/
|
|
1119
1157
|
export const verifyEmailAuthVerifyEmailPost = (options) => (options.client ?? client).post({
|
|
1120
1158
|
url: '/auth/verify-email/',
|
|
@@ -1488,7 +1526,7 @@ export const dryRunConfigurationConfigOpsDryRunPost = (options) => (options.clie
|
|
|
1488
1526
|
* Returns a downloadable JSON payload with Content-Disposition header. This is a
|
|
1489
1527
|
* file-download endpoint — the previous ``response_model=ConfigExportResponse``
|
|
1490
1528
|
* was silently ignored because the handler returns a raw JSONResponse with custom
|
|
1491
|
-
* headers
|
|
1529
|
+
* headers. Using ``response_class=JSONResponse`` is the correct way to
|
|
1492
1530
|
* document a download endpoint in OpenAPI.
|
|
1493
1531
|
*/
|
|
1494
1532
|
export const exportConfigurationConfigOpsExportGet = (options) => (options?.client ?? client).get({
|
|
@@ -2054,7 +2092,7 @@ export const validateDcat3RecordDatasetsDatasetIdDcatValidationGet = (options) =
|
|
|
2054
2092
|
* S3 storage: returns a 302 redirect to a presigned GET URL (1-hour expiry).
|
|
2055
2093
|
* Accepts standard auth or ?token= JWT query parameter for browser downloads.
|
|
2056
2094
|
*
|
|
2057
|
-
*
|
|
2095
|
+
* ``user`` may be None when a no-sub anonymous
|
|
2058
2096
|
* download token (issued by POST /auth/download-token/{id} for a public
|
|
2059
2097
|
* dataset) is presented on ``?token=``. The function branches on
|
|
2060
2098
|
* user-None to enforce public visibility and emit the audit row with
|
|
@@ -2102,7 +2140,7 @@ export const exportDatasetEndpointDatasetsDatasetIdExportGet = (options) => (opt
|
|
|
2102
2140
|
* Return up to 5,000 features as RFC 7946 GeoJSON with Z coordinates.
|
|
2103
2141
|
*
|
|
2104
2142
|
* fix(#394) codex P2: the viewer's bounded-GeoJSON path (small 3D layers,
|
|
2105
|
-
* eligible cluster layers) already sends ``X-Embed-Token``, and the
|
|
2143
|
+
* eligible cluster layers) already sends ``X-Embed-Token``, and the
|
|
2106
2144
|
* shared-map union now exposes embed-scoped private layers to embeds — so
|
|
2107
2145
|
* this endpoint accepts the token as fallback authorization via the SAME
|
|
2108
2146
|
* ``validate_embed_token_access`` capability check as tile serving.
|
|
@@ -2137,7 +2175,7 @@ export const getFeaturesGeojsonZEndpointDatasetsDatasetIdFeaturesGeojsonGet = (o
|
|
|
2137
2175
|
*
|
|
2138
2176
|
* Get paginated GeoJSON features for a dataset.
|
|
2139
2177
|
*
|
|
2140
|
-
* Pagination is OFFSET-based (fix(#458
|
|
2178
|
+
* Pagination is OFFSET-based (fix(#458), documented limitation): rows can
|
|
2141
2179
|
* skip or duplicate across pages under concurrent writes, though feature ids
|
|
2142
2180
|
* stay stable (ORDER BY gid, the primary key). Clients that need stable
|
|
2143
2181
|
* cursoring should use the OGC API Features endpoint, which supports keyset
|
|
@@ -2470,7 +2508,7 @@ export const listRelatedDatasetsDatasetsDatasetIdRelatedGet = (options) => (opti
|
|
|
2470
2508
|
* Paginated via ``skip`` and ``limit`` to bound response size for datasets
|
|
2471
2509
|
* with large numbers of auto-detected relationships. Returns the standard
|
|
2472
2510
|
* list envelope (``relationships`` + ``total``) so callers can detect whether
|
|
2473
|
-
* more pages exist
|
|
2511
|
+
* more pages exist; ``total`` counts the visible relationships before
|
|
2474
2512
|
* pagination.
|
|
2475
2513
|
*/
|
|
2476
2514
|
export const listDatasetRelationshipsDatasetsDatasetIdRelationshipsGet = (options) => (options.client ?? client).get({
|
|
@@ -2813,6 +2851,11 @@ export const listVrtSourcesDatasetsDatasetIdVrtSourcesGet = (options) => (option
|
|
|
2813
2851
|
* List Vrt Generations
|
|
2814
2852
|
*
|
|
2815
2853
|
* Return paginated generation history for a VRT dataset.
|
|
2854
|
+
*
|
|
2855
|
+
* Not every caller gets every field. Seeing the dataset decides whether there
|
|
2856
|
+
* is a history at all; the provenance predicate decides whether its rows carry
|
|
2857
|
+
* their failure text and the id of whoever triggered them. See
|
|
2858
|
+
* ``_vrt_generation_item``.
|
|
2816
2859
|
*/
|
|
2817
2860
|
export const listVrtGenerationsDatasetsDatasetIdVrtGenerationsGet = (options) => (options.client ?? client).get({
|
|
2818
2861
|
security: [
|
|
@@ -3031,7 +3074,7 @@ export const registerTableIngestRegisterPost = (options) => (options.client ?? c
|
|
|
3031
3074
|
* Each table is registered independently -- one failure does not block
|
|
3032
3075
|
* others. Tables are processed in parallel via ``asyncio.gather`` with
|
|
3033
3076
|
* a fresh session per task, which keeps transaction isolation while
|
|
3034
|
-
* removing the sequential per-table latency
|
|
3077
|
+
* removing the sequential per-table latency.
|
|
3035
3078
|
*/
|
|
3036
3079
|
export const bulkRegisterTablesIngestRegisterBulkPost = (options) => (options.client ?? client).post({
|
|
3037
3080
|
security: [
|
|
@@ -3141,16 +3184,23 @@ export const completePresignedUploadIngestUploadPresignedJobIdCompletePost = (op
|
|
|
3141
3184
|
/**
|
|
3142
3185
|
* Upload From Url
|
|
3143
3186
|
*
|
|
3144
|
-
*
|
|
3187
|
+
* Start importing a geospatial file from an HTTP(S) URL.
|
|
3145
3188
|
*
|
|
3146
3189
|
* feat(#1705): the URL variant of ``POST /ingest/upload`` — NOT a new
|
|
3147
3190
|
* source type. The server fetches the file itself and the staged bytes
|
|
3148
|
-
* enter the normal pipeline unchanged (preview
|
|
3149
|
-
*
|
|
3150
|
-
*
|
|
3151
|
-
*
|
|
3152
|
-
*
|
|
3153
|
-
*
|
|
3191
|
+
* enter the normal pipeline unchanged (preview then commit).
|
|
3192
|
+
*
|
|
3193
|
+
* feat(#1710): the download is a background job. This call validates the
|
|
3194
|
+
* URL and returns a job id immediately; poll ``GET /jobs/{job_id}`` and
|
|
3195
|
+
* preview once the job reaches ``pending``. While the file is downloading
|
|
3196
|
+
* the job reports status ``running`` with step ``downloading``.
|
|
3197
|
+
*
|
|
3198
|
+
* Rule 2 posture: ``validate_url_for_ssrf`` gates the URL here, the worker
|
|
3199
|
+
* downloads through ``make_safe_client()`` (connect-time IP pinning plus
|
|
3200
|
+
* per-hop redirect revalidation), the size cap is enforced while
|
|
3201
|
+
* streaming, the staged file passes the same extension allowlist and
|
|
3202
|
+
* content sniff as a direct upload, and GDAL only ever sees the staged
|
|
3203
|
+
* local file.
|
|
3154
3204
|
*/
|
|
3155
3205
|
export const uploadFromUrlIngestUploadUrlPost = (options) => (options.client ?? client).post({
|
|
3156
3206
|
security: [
|
|
@@ -3202,7 +3252,7 @@ export const createVrtIngestVrtCreatePost = (options) => (options.client ?? clie
|
|
|
3202
3252
|
*
|
|
3203
3253
|
* Validates the new source against existing sources synchronously.
|
|
3204
3254
|
* Returns 202 Accepted with a job_id for polling.
|
|
3205
|
-
* Returns 409 if the VRT is currently regenerating
|
|
3255
|
+
* Returns 409 if the VRT is currently regenerating or the source is already linked.
|
|
3206
3256
|
* Returns 422 if the source is incompatible with existing sources.
|
|
3207
3257
|
*/
|
|
3208
3258
|
export const addVrtSourceIngestVrtDatasetIdSourcesPost = (options) => (options.client ?? client).post({
|
|
@@ -3228,7 +3278,7 @@ export const addVrtSourceIngestVrtDatasetIdSourcesPost = (options) => (options.c
|
|
|
3228
3278
|
* Remove a COG source from an existing VRT and trigger async regeneration.
|
|
3229
3279
|
*
|
|
3230
3280
|
* Returns 202 Accepted with a job_id for polling.
|
|
3231
|
-
* Returns 409 if the VRT is currently regenerating
|
|
3281
|
+
* Returns 409 if the VRT is currently regenerating.
|
|
3232
3282
|
* Returns 422 if removing would leave fewer than 2 sources.
|
|
3233
3283
|
* Returns 404 if the source is not linked to the VRT.
|
|
3234
3284
|
*/
|
|
@@ -3262,6 +3312,16 @@ export const removeVrtSourceIngestVrtDatasetIdSourcesSourceDatasetIdDelete = (op
|
|
|
3262
3312
|
* 404 would needlessly pollute the browser console on the dataset detail
|
|
3263
3313
|
* page. A genuine 404 is still raised when the dataset is not visible to the
|
|
3264
3314
|
* user, to avoid leaking job existence (see visibility check below).
|
|
3315
|
+
*
|
|
3316
|
+
* Not every caller gets every field. Seeing the dataset decides whether there
|
|
3317
|
+
* is an answer at all; who ran the job decides how much of the answer is
|
|
3318
|
+
* filled in. The dataset's owner, an admin, and the job's own creator get the
|
|
3319
|
+
* full payload. Any other reader of a visible dataset gets the job id, its
|
|
3320
|
+
* status and its timestamps, with the run's own detail nulled: no
|
|
3321
|
+
* ``error_message``, ``source_filename``, warnings, step, row counts or
|
|
3322
|
+
* retry hint. That is the redaction ``GET /datasets/{dataset_id}/refresh-runs``
|
|
3323
|
+
* already applies to the same failure text, and ``_redacted_job_status``
|
|
3324
|
+
* documents the decision field by field.
|
|
3265
3325
|
*/
|
|
3266
3326
|
export const getJobStatusByDatasetJobsByDatasetDatasetIdGet = (options) => (options.client ?? client).get({
|
|
3267
3327
|
security: [
|
|
@@ -3469,7 +3529,7 @@ export const renameColumnEndpointLayersDatasetIdColumnsColumnNameNamePatch = (op
|
|
|
3469
3529
|
*
|
|
3470
3530
|
* Count saved maps whose layer config references a column.
|
|
3471
3531
|
*
|
|
3472
|
-
* fix(#458
|
|
3532
|
+
* fix(#458): surfaced in the schema editor before a rename/drop so the
|
|
3473
3533
|
* editor knows how many saved maps depend on the column. Count only — map
|
|
3474
3534
|
* titles may belong to other users and are not exposed here.
|
|
3475
3535
|
*/
|
|
@@ -3600,7 +3660,7 @@ export const uploadMapIconEndpointMapsIconsPost = (options) => (options.client ?
|
|
|
3600
3660
|
*
|
|
3601
3661
|
* Serve an uploaded or bundled icon asset by stable icon ID.
|
|
3602
3662
|
*
|
|
3603
|
-
*
|
|
3663
|
+
* SVG responses carry Content-Security-Policy
|
|
3604
3664
|
* ``default-src 'none'; sandbox`` so an uploaded SVG cannot fetch other
|
|
3605
3665
|
* origins, run scripts, or read auth cookies even if validation is bypassed
|
|
3606
3666
|
* in the future. Browsers (Chromium, Firefox) honor the sandbox directive on
|
|
@@ -3613,8 +3673,7 @@ export const getMapIconAssetEndpointMapsIconsIconIdAssetGet = (options) => (opti
|
|
|
3613
3673
|
*
|
|
3614
3674
|
* Import a MapLibre style JSON document into a new GeoLens map.
|
|
3615
3675
|
*
|
|
3616
|
-
*
|
|
3617
|
-
* a bare ``dict``. ``MapStyleImportRequest`` mirrors the MapLibre style
|
|
3676
|
+
* The request body is a typed Pydantic model rather than a bare ``dict``. ``MapStyleImportRequest`` mirrors the MapLibre style
|
|
3618
3677
|
* spec top-level keys with ``extra="allow"``, so existing payloads keep
|
|
3619
3678
|
* working byte-identically while the OpenAPI schema gains a named class
|
|
3620
3679
|
* and the auto-generated SDKs stop emitting an opaque ``Mapping[str, Any]``
|
|
@@ -3642,14 +3701,14 @@ export const importMapStyleEndpointMapsImportPost = (options) => (options.client
|
|
|
3642
3701
|
*
|
|
3643
3702
|
* Get a shared map by token. Optionally authenticated for non-public layers.
|
|
3644
3703
|
*
|
|
3645
|
-
*
|
|
3704
|
+
* Emits ``Content-Security-Policy: frame-ancestors
|
|
3646
3705
|
* 'self' [<allowed_origins>...]`` on the response, derived from the active
|
|
3647
3706
|
* EmbedToken for this map. When no EmbedToken exists or allowed_origins is
|
|
3648
3707
|
* empty, defaults to ``frame-ancestors 'self'``. The SecurityHeadersMiddleware
|
|
3649
3708
|
* respects this route-level CSP and skips emitting X-Frame-Options: DENY.
|
|
3650
3709
|
*
|
|
3651
|
-
* fix(#394)
|
|
3652
|
-
*
|
|
3710
|
+
* fix(#394): accepts ``X-Embed-Token`` so embed viewers get the layers the
|
|
3711
|
+
* token's scope authorizes, as a capability rather than a role.
|
|
3653
3712
|
*/
|
|
3654
3713
|
export const getSharedMapEndpointMapsSharedTokenGet = (options) => (options.client ?? client).get({
|
|
3655
3714
|
security: [
|
|
@@ -3878,14 +3937,14 @@ export const getMapHistoryEndpointMapsMapIdHistoryGet = (options) => (options.cl
|
|
|
3878
3937
|
*
|
|
3879
3938
|
* Apply incremental layer additions, patches, removals, and ordering.
|
|
3880
3939
|
*
|
|
3881
|
-
*
|
|
3882
|
-
*
|
|
3883
|
-
*
|
|
3884
|
-
*
|
|
3885
|
-
*
|
|
3886
|
-
*
|
|
3887
|
-
*
|
|
3888
|
-
*
|
|
3940
|
+
* Declared on both slash variants directly, mirroring the POST route
|
|
3941
|
+
* below. FastAPI's default redirect_slashes builds a relative Location
|
|
3942
|
+
* header that resolves against the request's Host header, which would
|
|
3943
|
+
* leak the in-container ``api:8000`` hostname through Vite's dev proxy
|
|
3944
|
+
* on a 307 redirect. The canonical (OpenAPI-published) form is the
|
|
3945
|
+
* no-slash sub-collection convention documented in the GeoLens API guide
|
|
3946
|
+
* (https://docs.getgeolens.com/guides/api/); the trailing-slash form is
|
|
3947
|
+
* a hidden alias.
|
|
3889
3948
|
*/
|
|
3890
3949
|
export const patchMapLayersEndpointMapsMapIdLayersPatch = (options) => (options.client ?? client).patch({
|
|
3891
3950
|
security: [
|
|
@@ -3909,9 +3968,9 @@ export const patchMapLayersEndpointMapsMapIdLayersPatch = (options) => (options.
|
|
|
3909
3968
|
*
|
|
3910
3969
|
* Add a layer to a map.
|
|
3911
3970
|
*
|
|
3912
|
-
*
|
|
3913
|
-
*
|
|
3914
|
-
*
|
|
3971
|
+
* Declared on both slash variants directly so neither emits a 307.
|
|
3972
|
+
* FastAPI's default redirect_slashes builds a relative Location header
|
|
3973
|
+
* that resolves against the request's Host header, leaking the
|
|
3915
3974
|
* in-container ``api:8000`` hostname through Vite's dev proxy. The
|
|
3916
3975
|
* canonical (OpenAPI-published) form is the no-slash sub-collection
|
|
3917
3976
|
* convention documented in the GeoLens API guide
|
|
@@ -3940,9 +3999,8 @@ export const addLayerEndpointMapsMapIdLayersPost = (options) => (options.client
|
|
|
3940
3999
|
*
|
|
3941
4000
|
* Batch-delete multiple layers from a map in a single request.
|
|
3942
4001
|
*
|
|
3943
|
-
*
|
|
3944
|
-
*
|
|
3945
|
-
* batched call for bulk-delete UX (PB-03 / PERF-03).
|
|
4002
|
+
* One additive endpoint that reduces N sequential DELETEs to a single
|
|
4003
|
+
* batched call for bulk-delete UX.
|
|
3946
4004
|
*
|
|
3947
4005
|
* Returns 200 with deleted/failed arrays in all cases (partial failures
|
|
3948
4006
|
* surface inline, not as HTTP errors). Full rollback is the caller's
|
|
@@ -4015,7 +4073,7 @@ export const getOgImageMapsMapIdOgImageGet = (options) => (options.client ?? cli
|
|
|
4015
4073
|
* ``maps/og-images/{map_id}.{ext}``, and persists the storage key to
|
|
4016
4074
|
* ``catalog.maps.og_image_uri``.
|
|
4017
4075
|
*
|
|
4018
|
-
* Intended for 1200x630 JPEG captures
|
|
4076
|
+
* Intended for 1200x630 JPEG captures. The payload cap
|
|
4019
4077
|
* (750KB) is larger than the thumbnail cap (100KB) to accommodate the
|
|
4020
4078
|
* larger canvas export — they are separate schemas (OgImageUploadRequest
|
|
4021
4079
|
* vs ThumbnailUploadRequest) to avoid relaxing the locked thumbnail
|
|
@@ -4189,7 +4247,7 @@ export const uploadThumbnailMapsMapIdThumbnailPut = (options) => (options.client
|
|
|
4189
4247
|
* Owner-or-admin like the other sharing mutations: the response names
|
|
4190
4248
|
* non-public dataset titles, which read access alone must not reveal.
|
|
4191
4249
|
* Read access is checked first so unreadable maps keep answering 404
|
|
4192
|
-
* (
|
|
4250
|
+
* (existence-hiding); readable non-owners get 403.
|
|
4193
4251
|
*/
|
|
4194
4252
|
export const visibilityCheckEndpointMapsMapIdVisibilityCheckGet = (options) => (options.client ?? client).get({
|
|
4195
4253
|
security: [
|
|
@@ -4619,6 +4677,38 @@ export const getSavedSearchEndpointSearchSavedSearchIdGet = (options) => (option
|
|
|
4619
4677
|
url: '/search/saved/{search_id}',
|
|
4620
4678
|
...options
|
|
4621
4679
|
});
|
|
4680
|
+
/**
|
|
4681
|
+
* Arcgis Signin
|
|
4682
|
+
*
|
|
4683
|
+
* Sign in to an ArcGIS portal and return a short-lived token.
|
|
4684
|
+
*
|
|
4685
|
+
* Asks the portal's own token service for a token valid for 60 minutes and
|
|
4686
|
+
* returns it. Put that token in the `token` field on probe, preview, commit
|
|
4687
|
+
* and refresh; an import that runs longer than the token lives fails with a
|
|
4688
|
+
* credential error and has to start over.
|
|
4689
|
+
*
|
|
4690
|
+
* An account that signs in through an identity provider, or that has
|
|
4691
|
+
* multifactor authentication turned on, cannot use this. Paste a token or
|
|
4692
|
+
* an API key instead. A portal on a private network is unreachable either
|
|
4693
|
+
* way.
|
|
4694
|
+
*/
|
|
4695
|
+
export const arcgisSigninServicesArcgisSigninPost = (options) => (options.client ?? client).post({
|
|
4696
|
+
security: [
|
|
4697
|
+
{ scheme: 'bearer', type: 'http' },
|
|
4698
|
+
{ name: 'X-Api-Key', type: 'apiKey' },
|
|
4699
|
+
{
|
|
4700
|
+
in: 'query',
|
|
4701
|
+
name: 'api_key',
|
|
4702
|
+
type: 'apiKey'
|
|
4703
|
+
}
|
|
4704
|
+
],
|
|
4705
|
+
url: '/services/arcgis/signin/',
|
|
4706
|
+
...options,
|
|
4707
|
+
headers: {
|
|
4708
|
+
'Content-Type': 'application/json',
|
|
4709
|
+
...options.headers
|
|
4710
|
+
}
|
|
4711
|
+
});
|
|
4622
4712
|
/**
|
|
4623
4713
|
* List Connectors Endpoint
|
|
4624
4714
|
*
|
|
@@ -4739,6 +4829,8 @@ export const probeServiceUrlServicesProbePost = (options) => (options.client ??
|
|
|
4739
4829
|
* Stac Collections
|
|
4740
4830
|
*
|
|
4741
4831
|
* List collections from a connected STAC API.
|
|
4832
|
+
*
|
|
4833
|
+
* Accepts a credential for a protected catalog, applied to this call.
|
|
4742
4834
|
*/
|
|
4743
4835
|
export const stacCollectionsServicesStacCollectionsPost = (options) => (options.client ?? client).post({
|
|
4744
4836
|
security: [
|
|
@@ -4761,6 +4853,8 @@ export const stacCollectionsServicesStacCollectionsPost = (options) => (options.
|
|
|
4761
4853
|
* Stac Connect
|
|
4762
4854
|
*
|
|
4763
4855
|
* Connect to a STAC API and validate the endpoint.
|
|
4856
|
+
*
|
|
4857
|
+
* Accepts a credential for a protected catalog, applied to this call.
|
|
4764
4858
|
*/
|
|
4765
4859
|
export const stacConnectServicesStacConnectPost = (options) => (options.client ?? client).post({
|
|
4766
4860
|
security: [
|
|
@@ -4809,6 +4903,8 @@ export const stacImportServicesStacImportPost = (options) => (options.client ??
|
|
|
4809
4903
|
* Stac Search
|
|
4810
4904
|
*
|
|
4811
4905
|
* Search items in a STAC API with spatial/temporal filters.
|
|
4906
|
+
*
|
|
4907
|
+
* Accepts a credential for a protected catalog, applied to this call.
|
|
4812
4908
|
*/
|
|
4813
4909
|
export const stacSearchServicesStacSearchPost = (options) => (options.client ?? client).post({
|
|
4814
4910
|
security: [
|
|
@@ -4894,7 +4990,7 @@ export const getApiKeyStatusSettingsApiKeyStatusGet = (options) => (options?.cli
|
|
|
4894
4990
|
* configured. When a key IS set the placeholder is resolved server-side.
|
|
4895
4991
|
* The response uses ``BasemapPublicResponse`` which excludes ``api_key``.
|
|
4896
4992
|
*
|
|
4897
|
-
*
|
|
4993
|
+
* The resolved ``url`` field intentionally
|
|
4898
4994
|
* includes the substituted ``api_key`` value when configured. Client-side
|
|
4899
4995
|
* tile-provider keys (Mapbox, Stadia, MapTiler) are designed for browser
|
|
4900
4996
|
* exposure and the frontend MUST receive them to load tiles. Do NOT put a
|
|
@@ -4992,7 +5088,7 @@ export const getMapDefaultsSettingsMapDefaultsGet = (options) => (options?.clien
|
|
|
4992
5088
|
*
|
|
4993
5089
|
* Mirrors get_api_key_status: returns presence flags derived from env/settings
|
|
4994
5090
|
* without ever echoing the SMTP password, webhook URL, or webhook secret
|
|
4995
|
-
*
|
|
5091
|
+
* without secrets.
|
|
4996
5092
|
*/
|
|
4997
5093
|
export const getNotificationStatusSettingsNotificationsStatusGet = (options) => (options?.client ?? client).get({
|
|
4998
5094
|
security: [
|
|
@@ -5014,7 +5110,7 @@ export const getNotificationStatusSettingsNotificationsStatusGet = (options) =>
|
|
|
5014
5110
|
*
|
|
5015
5111
|
* Mirrors detect_embedding_dims: admin-gated probe that reports per-channel
|
|
5016
5112
|
* reachable/error in a 200 body without leaking secrets or raising 5xx on a
|
|
5017
|
-
* bad channel
|
|
5113
|
+
* bad channel.
|
|
5018
5114
|
*
|
|
5019
5115
|
* Per-channel approach (not EnvConfiguredNotificationSink.deliver) is used so
|
|
5020
5116
|
* each channel's success/failure is captured in its own
|
|
@@ -5058,7 +5154,7 @@ export const listOauthProvidersSettingsOauthProvidersGet = (options) => (options
|
|
|
5058
5154
|
*
|
|
5059
5155
|
* Audit-log payload includes the full ``created`` snapshot with non-secret
|
|
5060
5156
|
* fields verbatim and ``<redacted>`` markers for secrets that were submitted
|
|
5061
|
-
* in the request body
|
|
5157
|
+
* in the request body.
|
|
5062
5158
|
*/
|
|
5063
5159
|
export const createOauthProviderSettingsOauthProvidersPost = (options) => (options.client ?? client).post({
|
|
5064
5160
|
security: [
|
|
@@ -5084,8 +5180,7 @@ export const createOauthProviderSettingsOauthProvidersPost = (options) => (optio
|
|
|
5084
5180
|
*
|
|
5085
5181
|
* Audit-log payload contains a ``deleted`` snapshot with the pre-delete
|
|
5086
5182
|
* state — non-secret fields verbatim, secret fields marked ``<redacted>``
|
|
5087
|
-
* if they were previously set
|
|
5088
|
-
* delete events too).
|
|
5183
|
+
* if they were previously set; the same redaction applies to delete events.
|
|
5089
5184
|
*/
|
|
5090
5185
|
export const deleteOauthProviderSettingsOauthProvidersProviderIdDelete = (options) => (options.client ?? client).delete({
|
|
5091
5186
|
security: [
|
|
@@ -5108,8 +5203,7 @@ export const deleteOauthProviderSettingsOauthProvidersProviderIdDelete = (option
|
|
|
5108
5203
|
* Audit-log payload contains ``details.changes`` with per-field
|
|
5109
5204
|
* ``{"old": ..., "new": ...}`` diffs. Secret fields (idp_certificate,
|
|
5110
5205
|
* client_secret_encrypted, client_secret) are redacted as
|
|
5111
|
-
* ``{"old": "<redacted>", "new": "<redacted>"}
|
|
5112
|
-
* T-217-03-AUDIT-LEAK HIGH severity).
|
|
5206
|
+
* ``{"old": "<redacted>", "new": "<redacted>"}``.
|
|
5113
5207
|
*/
|
|
5114
5208
|
export const updateOauthProviderSettingsOauthProvidersProviderIdPut = (options) => (options.client ?? client).put({
|
|
5115
5209
|
security: [
|
|
@@ -5277,17 +5371,40 @@ export const searchPostStacSearchPost = (options) => (options.client ?? client).
|
|
|
5277
5371
|
/**
|
|
5278
5372
|
* Cluster Tile Endpoint
|
|
5279
5373
|
*
|
|
5280
|
-
* Serve a server-side clustered vector tile for point
|
|
5281
|
-
*
|
|
5282
|
-
* URL pattern:
|
|
5283
|
-
*
|
|
5284
|
-
*
|
|
5285
|
-
* public
|
|
5286
|
-
*
|
|
5287
|
-
*
|
|
5288
|
-
*
|
|
5289
|
-
*
|
|
5290
|
-
*
|
|
5374
|
+
* Serve a server-side clustered vector tile for a point dataset.
|
|
5375
|
+
*
|
|
5376
|
+
* URL pattern: ``/tiles/clusters/data.{table_name}/{z}/{x}/{y}.pbf``
|
|
5377
|
+
*
|
|
5378
|
+
* Authorization matches the plain vector tile route, in three cases. A
|
|
5379
|
+
* public, published dataset is readable without credentials. A non-public
|
|
5380
|
+
* dataset needs either valid signature parameters (``sig``, ``exp``,
|
|
5381
|
+
* ``scope``) or an embed token scoped to it, and answers 403 without one. A
|
|
5382
|
+
* public dataset that is not yet published is readable by its owner, by an
|
|
5383
|
+
* admin, with an embed token, or with valid signature parameters, and answers
|
|
5384
|
+
* 404 to other callers, so a refusal keeps its existence undisclosed. An
|
|
5385
|
+
* unknown table is 404 too.
|
|
5386
|
+
*
|
|
5387
|
+
* A request that no capability authorized and that carried a credential which
|
|
5388
|
+
* did not resolve is refused with 401 rather than served as an anonymous
|
|
5389
|
+
* read, so an expired token is rejected instead of being silently downgraded.
|
|
5390
|
+
* A request sending no credential is served normally.
|
|
5391
|
+
*
|
|
5392
|
+
* ``cluster_radius`` is a screen-pixel distance, the same units MapLibre's
|
|
5393
|
+
* ``clusterRadius`` uses, and ``cluster_max_zoom`` is the last zoom at which
|
|
5394
|
+
* features are grouped. ``cols`` works as it does on the vector route, and
|
|
5395
|
+
* the named columns are projected onto the unclustered features, so
|
|
5396
|
+
* data-driven styling and popups keep working here too.
|
|
5397
|
+
*
|
|
5398
|
+
* Requires a vector point dataset; another record type responds 400, as does
|
|
5399
|
+
* a malformed table path or an out-of-range tile coordinate.
|
|
5400
|
+
*
|
|
5401
|
+
* A tile holding no features answers 204, and a repeat request whose
|
|
5402
|
+
* ``If-None-Match`` matches answers 304. Where a deployment runs cold storage,
|
|
5403
|
+
* a dataset still being restored answers 202 with a job id to poll. Three
|
|
5404
|
+
* cases answer 429 with ``Retry-After``: waiting past the tile pool's
|
|
5405
|
+
* connection budget, a tile query that outruns the pool's per-command
|
|
5406
|
+
* timeout, and exceeding a configured per-tenant concurrency limit. Any other
|
|
5407
|
+
* failure serving the tile answers 503.
|
|
5291
5408
|
*/
|
|
5292
5409
|
export const clusterTileEndpointTilesClustersTablePathZXYPbfGet = (options) => (options.client ?? client).get({
|
|
5293
5410
|
security: [
|
|
@@ -5305,28 +5422,46 @@ export const clusterTileEndpointTilesClustersTablePathZXYPbfGet = (options) => (
|
|
|
5305
5422
|
/**
|
|
5306
5423
|
* Raster Tile Proxy
|
|
5307
5424
|
*
|
|
5308
|
-
*
|
|
5309
|
-
*
|
|
5310
|
-
*
|
|
5311
|
-
*
|
|
5312
|
-
*
|
|
5313
|
-
*
|
|
5314
|
-
* colormap_name
|
|
5315
|
-
*
|
|
5316
|
-
*
|
|
5317
|
-
*
|
|
5318
|
-
*
|
|
5319
|
-
*
|
|
5320
|
-
*
|
|
5321
|
-
*
|
|
5322
|
-
*
|
|
5323
|
-
*
|
|
5324
|
-
*
|
|
5325
|
-
*
|
|
5326
|
-
*
|
|
5327
|
-
*
|
|
5328
|
-
*
|
|
5329
|
-
*
|
|
5425
|
+
* Render one raster tile and return the image.
|
|
5426
|
+
*
|
|
5427
|
+
* Returns the image itself rather than a redirect: the dataset is
|
|
5428
|
+
* authorized, then the rendered tile comes back in the response body. Used by
|
|
5429
|
+
* the development proxy and by deployments that run without nginx in front.
|
|
5430
|
+
*
|
|
5431
|
+
* ``colormap_name`` applies a colormap to a single-band raster. Passing
|
|
5432
|
+
* ``gray`` leaves the rendering unchanged, and a digital elevation model
|
|
5433
|
+
* ignores the parameter, because its terrain encoding cannot be recoloured.
|
|
5434
|
+
*
|
|
5435
|
+
* ``stretch`` chooses how pixel values map to the output range. ``minmax``
|
|
5436
|
+
* keeps the range the dataset already implies: the recorded per-band minimum
|
|
5437
|
+
* and maximum for a raster imported from a remote source that published
|
|
5438
|
+
* statistics, a range derived from the data type for most others, and no
|
|
5439
|
+
* rescale parameter for 8-bit data, which needs none. ``percentile`` and
|
|
5440
|
+
* ``stddev`` instead derive a range from band statistics read at request
|
|
5441
|
+
* time, for up to three bands. A digital elevation model ignores the
|
|
5442
|
+
* parameter, and so does a request whose band statistics cannot be read,
|
|
5443
|
+
* which falls back to ``minmax`` rather than failing.
|
|
5444
|
+
*
|
|
5445
|
+
* ``pmin`` and ``pmax`` (2 and 98 by default) are read when ``stretch`` is
|
|
5446
|
+
* ``percentile``, and ``sigma`` (2.0 by default) when it is ``stddev``. A
|
|
5447
|
+
* parameter that does not apply to the selected stretch is ignored, and its
|
|
5448
|
+
* default is used in place of the value sent.
|
|
5449
|
+
*
|
|
5450
|
+
* Responds 204 when the tile falls outside the raster, 400 for an
|
|
5451
|
+
* unsupported format, 401 when authentication is required, or when a request
|
|
5452
|
+
* that no capability authorized carried a credential which did not resolve,
|
|
5453
|
+
* 403 when the embed token is invalid or expired
|
|
5454
|
+
* or a multi-tenant request arrives with no tenant context, 422 for an
|
|
5455
|
+
* out-of-range stretch parameter, and 503 when the renderer cannot be
|
|
5456
|
+
* reached. A different failure from the renderer is passed through with its
|
|
5457
|
+
* own status.
|
|
5458
|
+
*
|
|
5459
|
+
* 404 covers more than a missing dataset. A dataset that is unknown, is not a
|
|
5460
|
+
* raster or has no image answers 404. Where no capability authorized the
|
|
5461
|
+
* request, so does a dataset the caller may not read: an authorization denial
|
|
5462
|
+
* on a non-public raster, and an unpublished raster asked for by a caller who
|
|
5463
|
+
* is neither its owner nor an admin. That is deliberate, so a refusal keeps a
|
|
5464
|
+
* dataset's existence undisclosed.
|
|
5330
5465
|
*/
|
|
5331
5466
|
export const rasterTileProxyTilesRasterProxyDatasetIdZXYFmtGet = (options) => (options.client ?? client).get({
|
|
5332
5467
|
security: [
|
|
@@ -5370,20 +5505,26 @@ export const getTileTokenTilesTokenDatasetIdGet = (options) => (options.client ?
|
|
|
5370
5505
|
/**
|
|
5371
5506
|
* Get Tile Tokens Batch
|
|
5372
5507
|
*
|
|
5373
|
-
*
|
|
5508
|
+
* Generate tile tokens for up to 50 datasets in one request.
|
|
5509
|
+
*
|
|
5510
|
+
* The list must hold between 1 and 50 ids, and a request outside that is 422.
|
|
5374
5511
|
*
|
|
5375
|
-
*
|
|
5376
|
-
*
|
|
5377
|
-
* signatures). This endpoint does the same work in a single round trip
|
|
5378
|
-
* with one DB query for dataset metadata (PERF-N5).
|
|
5512
|
+
* One round trip in place of one request per dataset, which is what a map
|
|
5513
|
+
* with many layers would otherwise need.
|
|
5379
5514
|
*
|
|
5380
|
-
*
|
|
5381
|
-
*
|
|
5382
|
-
*
|
|
5515
|
+
* A dataset that cannot be found or cannot be authorized does not fail the
|
|
5516
|
+
* batch: that id maps to ``{"error": "..."}`` in the response instead, so
|
|
5517
|
+
* check each entry for an ``error`` key before using it. Duplicate ids are
|
|
5518
|
+
* collapsed.
|
|
5383
5519
|
*
|
|
5384
|
-
*
|
|
5385
|
-
*
|
|
5386
|
-
*
|
|
5520
|
+
* The request as a whole still fails 401 in one case: a request that carried
|
|
5521
|
+
* a credential which did not resolve and that no capability authorized
|
|
5522
|
+
* answers 401 rather than a body of per-dataset errors. A request carrying no
|
|
5523
|
+
* credential is served normally.
|
|
5524
|
+
*
|
|
5525
|
+
* ``X-Embed-Token`` is accepted as a fallback authorization for the datasets
|
|
5526
|
+
* inside that token's scope, so an embedded map can build a terrain source
|
|
5527
|
+
* from real bounds and zoom limits.
|
|
5387
5528
|
*/
|
|
5388
5529
|
export const getTileTokensBatchTilesTokensPost = (options) => (options.client ?? client).post({
|
|
5389
5530
|
security: [
|
|
@@ -5407,10 +5548,19 @@ export const getTileTokensBatchTilesTokensPost = (options) => (options.client ??
|
|
|
5407
5548
|
*
|
|
5408
5549
|
* Serve a vector tile as gzipped MVT binary.
|
|
5409
5550
|
*
|
|
5410
|
-
* URL pattern:
|
|
5551
|
+
* URL pattern: ``/tiles/data.{table_name}/{z}/{x}/{y}.pbf``
|
|
5552
|
+
*
|
|
5553
|
+
* A public, published dataset is readable without credentials. A non-public
|
|
5554
|
+
* dataset needs either valid signature parameters (``sig``, ``exp``,
|
|
5555
|
+
* ``scope``) or an embed token scoped to it, and answers 403 without one. A
|
|
5556
|
+
* public dataset that is not yet published is readable by its owner, by an
|
|
5557
|
+
* admin, with an embed token, or with valid signature parameters, and answers
|
|
5558
|
+
* 404 to other callers, so a refusal keeps its existence undisclosed. An
|
|
5559
|
+
* unknown table is 404 too.
|
|
5411
5560
|
*
|
|
5412
|
-
*
|
|
5413
|
-
*
|
|
5561
|
+
* A request that no capability authorized and that carried a credential which
|
|
5562
|
+
* did not resolve is refused with 401 rather than served as an anonymous
|
|
5563
|
+
* read. A request sending no credential is served normally.
|
|
5414
5564
|
*
|
|
5415
5565
|
* `cols` is a runtime opt-in for additional attribute columns the client
|
|
5416
5566
|
* needs at all zooms (e.g. data-driven styling columns referenced by
|
|
@@ -5420,6 +5570,15 @@ export const getTileTokensBatchTilesTokensPost = (options) => (options.client ??
|
|
|
5420
5570
|
* Does not need to be signed — `sig` already authorizes dataset
|
|
5421
5571
|
* access and `cols` can only project columns the caller already has
|
|
5422
5572
|
* REST access to.
|
|
5573
|
+
*
|
|
5574
|
+
* A malformed table path or an out-of-range tile coordinate answers 400. A
|
|
5575
|
+
* tile holding no features answers 204, and a repeat request whose
|
|
5576
|
+
* ``If-None-Match`` matches answers 304. Where a deployment runs cold storage,
|
|
5577
|
+
* a dataset still being restored answers 202 with a job id to poll. Three
|
|
5578
|
+
* cases answer 429 with ``Retry-After``: waiting past the tile pool's
|
|
5579
|
+
* connection budget, a tile query that outruns the pool's per-command
|
|
5580
|
+
* timeout, and exceeding a configured per-tenant concurrency limit. Any other
|
|
5581
|
+
* failure serving the tile answers 503.
|
|
5423
5582
|
*/
|
|
5424
5583
|
export const tileEndpointTilesTablePathZXYPbfGet = (options) => (options.client ?? client).get({
|
|
5425
5584
|
security: [
|