Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
199 changes: 199 additions & 0 deletions docs/mapi/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,53 @@ paths:
$ref: "#/components/schemas/Domain"
"500":
description: Internal server error
/organizations/{organizationId}/environments/{environmentId}/domains/_cursor:
get:
tags:
- domain
summary: List security domains with cursor-based pagination
description: "List security domains using cursor-based pagination for improved\
\ performance at scale. User must have DOMAIN[LIST] permission on the specified\
\ environment or organization."
operationId: listDomainsCursor
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
- name: environmentId
in: path
required: true
schema:
type: string
- name: limit
in: query
schema:
type: integer
format: int32
default: 50
- name: after
in: query
schema:
type: string
- name: q
in: query
schema:
type: string
- name: sort
in: query
schema:
type: string
responses:
"200":
description: List accessible security domains
content:
application/json:
schema:
$ref: "#/components/schemas/DomainCursorPage"
"500":
description: Internal server error
/organizations/{organizationId}/environments/{environmentId}/domains/_hrid/{hrid}:
get:
tags:
Expand Down Expand Up @@ -1068,6 +1115,59 @@ paths:
$ref: "#/components/schemas/Application"
"500":
description: Internal server error
/organizations/{organizationId}/environments/{environmentId}/domains/{domain}/applications/_cursor:
get:
tags:
- application
- domain
summary: List applications with cursor-based pagination
description: "List applications using cursor-based pagination for improved performance\
\ at scale. User must have APPLICATION[LIST] permission on the specified domain,\
\ environment or organization."
operationId: listApplicationsCursor
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
- name: environmentId
in: path
required: true
schema:
type: string
- name: domain
in: path
required: true
schema:
type: string
- name: limit
in: query
schema:
type: integer
format: int32
default: 50
- name: after
in: query
schema:
type: string
- name: q
in: query
schema:
type: string
- name: sort
in: query
schema:
type: string
responses:
"200":
description: List applications with cursor pagination
content:
application/json:
schema:
$ref: "#/components/schemas/ApplicationCursorPage"
"500":
description: Internal server error
/organizations/{organizationId}/environments/{environmentId}/domains/{domain}/applications/{application}:
get:
tags:
Expand Down Expand Up @@ -8045,6 +8145,63 @@ paths:
$ref: "#/components/schemas/User"
"500":
description: Internal server error
/organizations/{organizationId}/environments/{environmentId}/domains/{domain}/users/_cursor:
get:
tags:
- user
- domain
summary: List users with cursor-based pagination
description: "List users using cursor-based pagination for improved performance\
\ at scale. User must have DOMAIN_USER[LIST] permission on the specified domain,\
\ environment or organization."
operationId: listUsersCursor
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
- name: environmentId
in: path
required: true
schema:
type: string
- name: domain
in: path
required: true
schema:
type: string
- name: q
in: query
schema:
type: string
- name: filter
in: query
schema:
type: string
- name: limit
in: query
schema:
type: integer
format: int32
default: 30
- name: after
in: query
schema:
type: string
- name: sort
in: query
schema:
type: string
responses:
"200":
description: List users with cursor pagination
content:
application/json:
schema:
$ref: "#/components/schemas/UserCursorPage"
"500":
description: Internal server error
/organizations/{organizationId}/environments/{environmentId}/domains/{domain}/users/bulk:
post:
tags:
Expand Down Expand Up @@ -12157,6 +12314,20 @@ components:
type: boolean
skipConsent:
type: boolean
ApplicationCursorPage:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/FilteredApplication"
hasNext:
type: boolean
nextCursor:
type: string
totalCount:
type: integer
format: int64
ApplicationEntity:
type: object
properties:
Expand Down Expand Up @@ -13141,6 +13312,20 @@ components:
$ref: "#/components/schemas/VirtualHost"
webAuthnSettings:
$ref: "#/components/schemas/WebAuthnSettings"
DomainCursorPage:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Domain"
hasNext:
type: boolean
nextCursor:
type: string
totalCount:
type: integer
format: int64
DomainPage:
type: object
properties:
Expand Down Expand Up @@ -17261,6 +17446,20 @@ components:
type: string
expression:
type: string
UserCursorPage:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/User"
hasNext:
type: boolean
nextCursor:
type: string
totalCount:
type: integer
format: int64
UserEntity:
type: object
properties:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import io.gravitee.am.model.User;
import io.gravitee.am.model.UserId;
import io.gravitee.am.model.analytics.AnalyticsQuery;
import io.gravitee.am.model.common.CursorPage;
import io.gravitee.am.model.common.CursorRequest;
import io.gravitee.am.model.common.Page;
import io.gravitee.am.repository.common.CrudRepository;
import io.gravitee.am.repository.management.api.search.FilterCriteria;
Expand Down Expand Up @@ -101,6 +103,12 @@ public interface UserRepository extends CrudRepository<User, String> {

Completable deleteByReference(Reference reference);

Single<CursorPage<User>> findAllCursor(Reference reference, CursorRequest cursor);

Single<CursorPage<User>> searchCursor(Reference reference, String query, CursorRequest cursor);

Single<CursorPage<User>> searchCursor(Reference reference, FilterCriteria criteria, CursorRequest cursor);

/**
* Used to specify if some user information need to be updated
* in addition of the main User Profile information.
Expand Down
Loading