zitadel/pkg/auth/api/grpc/auth.swagger.json
Livio Amstutz effc2c23c2
feat: add auth command side (#107)
* fix: query tests

* fix: use prepare funcs

* fix: go mod

* fix: generate files

* fix(eventstore): tests

* fix(eventstore): rename modifier to editor

* fix(migrations): add cluster migration,
fix(migrations): fix typo of host in clean clsuter

* fix(eventstore): move health

* fix(eventstore): AggregateTypeFilter aggregateType as param

* code quality

* fix: go tests

* feat: add member funcs

* feat: add member model

* feat: add member events

* feat: add member repo model

* fix: better error func testing

* fix: project member funcs

* fix: add tests

* fix: add tests

* feat: implement member requests

* fix: merge master

* fix: merge master

* fix: read existing in project repo

* fix: fix tests

* feat: add internal cache

* feat: add cache mock

* fix: return values of cache mock

* feat: add project role

* fix: add cache config

* fix: add role to eventstore

* fix: use eventstore sdk

* fix: use eventstore sdk

* fix: add project role grpc requests

* fix: fix getby id

* fix: changes for mr

* fix: change value to interface

* feat: add app event creations

* fix: searchmethods

* Update internal/project/model/project_member.go

Co-Authored-By: Silvan <silvan.reusser@gmail.com>

* fix: use get project func

* fix: append events

* fix: check if value is string on equal ignore case

* fix: add changes test

* fix: add go mod

* fix: add some tests

* fix: return err not nil

* fix: return err not nil

* fix: add aggregate funcs and tests

* fix: add oidc aggregate funcs and tests

* fix: add oidc

* fix: add some tests

* fix: tests

* feat: eventstore repository

* fix: remove gorm

* version

* feat: pkg

* feat: eventstore without eventstore-lib

* rename files

* gnueg

* fix: global model

* feat: add global view functions

* feat(eventstore): sdk

* fix(eventstore): rename app to eventstore

* delete empty test

* fix(models): delete unused struct

* feat(eventstore): overwrite context data

* fix: use global sql config

* fix: oidc validation

* fix: generate client secret

* fix: generate client id

* fix: test change app

* fix: deactivate/reactivate application

* fix: change oidc config

* fix: change oidc config secret

* begin models

* begin repo

* fix: implement grpc app funcs

* fix: add application requests

* fix: converter

* fix: converter

* fix: converter and generate clientid

* fix: tests

* feat: project grant aggregate

* feat: project grant

* fix: project grant check if role existing

* fix: project grant requests

* fix: project grant fixes

* fix: project grant member model

* fix: project grant member aggregate

* fix: project grant member eventstore

* fix: project grant member requests

* feat: user model

* begin repo

* repo models and more

* feat: user command side

* lots of functions

* user command side

* profile requests

* commit before rebase on user

* save

* local config with gopass and more

* begin new auth command (user centric)

* Update internal/user/model/user.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/address.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/address.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/email.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/email.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/email.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/mfa.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/mfa.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/password.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/password.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/password.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/phone.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/phone.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/phone.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/user.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/user.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/model/user.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/usergrant/repository/eventsourcing/model/user_grant.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/usergrant/repository/eventsourcing/model/user_grant.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/usergrant/repository/eventsourcing/user_grant.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/user_test.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* Update internal/user/repository/eventsourcing/eventstore_mock_test.go

Co-Authored-By: Livio Amstutz <livio.a@gmail.com>

* changes from mr review

* save files into basedir

* changes from mr review

* changes from mr review

* move to auth request

* Update internal/usergrant/repository/eventsourcing/cache.go

Co-authored-by: Silvan <silvan.reusser@gmail.com>

* Update internal/usergrant/repository/eventsourcing/cache.go

Co-authored-by: Silvan <silvan.reusser@gmail.com>

* changes requested on mr

* fix generate codes

* fix return if no events

* password code

* email verification step

* more steps

* lot of mfa

* begin tests

* more next steps

* auth api

* auth api (user)

* auth api (user)

* auth api (user)

* differ requests

* merge

* tests

* fix compilation error

* mock for id generator

* Update internal/user/repository/eventsourcing/model/password.go

Co-authored-by: Silvan <silvan.reusser@gmail.com>

* Update internal/user/repository/eventsourcing/model/user.go

Co-authored-by: Silvan <silvan.reusser@gmail.com>

* requests of mr

* check email

* begin separation of command and query

* otp

* change packages

* some cleanup and fixes

* tests for auth request / next steps

* add VerificationLifetimes to config and make it run

* tests

* fix code challenge validation

* cleanup

* fix merge

* begin view

* repackaging tests and configs

* fix startup config for auth

* add migration

* add PromptSelectAccount

* fix copy / paste

* remove user_agent files

* fixes

* fix sequences in user_session

* token commands

* token queries and signout

* fix

* fix set password test

* add token handler and table

* handle session init

* add session state

* add user view test cases

* change VerifyMyMfaOTP

* some fixes

* fix user repo in auth api

* cleanup

* add user session view test

* fix merge

* fixes

* Update internal/auth/repository/eventsourcing/eventstore/auth_request.go

Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>

* Update internal/auth/repository/eventsourcing/eventstore/auth_request.go

Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>

* Update internal/auth/repository/eventsourcing/eventstore/auth_request.go

Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>

* Update internal/auth/repository/eventsourcing/eventstore/auth_request.go

Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>

* extract method usersForUserSelection

* add todo for policy check

* id on auth req

* fix enum name

Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
Co-authored-by: adlerhurst <silvan.reusser@gmail.com>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
2020-05-18 12:06:36 +02:00

978 lines
21 KiB
JSON

{
"swagger": "2.0",
"info": {
"title": "Auth API",
"version": "0.1",
"contact": {
"url": "https://github.com/caos/zitadel/pkg/auth"
}
},
"schemes": [
"https"
],
"consumes": [
"application/json",
"application/grpc"
],
"produces": [
"application/json",
"application/grpc"
],
"paths": {
"/global/_isiamadmin": {
"get": {
"operationId": "IsIamAdmin",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1IsAdminResponse"
}
}
},
"tags": [
"AuthService"
]
}
},
"/global/projectorgs/_search": {
"post": {
"operationId": "SearchMyProjectOrgs",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1MyProjectOrgSearchResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1MyProjectOrgSearchRequest"
}
}
],
"tags": [
"AuthService"
]
}
},
"/healthz": {
"get": {
"summary": "Readiness",
"operationId": "Healthz",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"tags": [
"AuthService"
]
}
},
"/me/usersessions": {
"get": {
"summary": "Authorization",
"operationId": "GetMyUserSessions",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserSessionViews"
}
}
},
"tags": [
"AuthService"
]
}
},
"/permissions/zitadel/me": {
"get": {
"summary": "Permission",
"operationId": "GetMyZitadelPermissions",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1MyPermissions"
}
}
},
"tags": [
"AuthService"
]
}
},
"/ready": {
"get": {
"operationId": "Ready",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"tags": [
"AuthService"
]
}
},
"/users/me/address": {
"get": {
"operationId": "GetMyUserAddress",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserAddress"
}
}
},
"tags": [
"AuthService"
]
},
"put": {
"operationId": "UpdateMyUserAddress",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserAddress"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1UpdateUserAddressRequest"
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/email": {
"get": {
"operationId": "GetMyUserEmail",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserEmail"
}
}
},
"tags": [
"AuthService"
]
},
"put": {
"operationId": "ChangeMyUserEmail",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserEmail"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1UpdateUserEmailRequest"
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/email/_resendverification": {
"post": {
"operationId": "ResendMyEmailVerificationMail",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"properties": {}
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/email/_verify": {
"post": {
"operationId": "VerifyMyUserEmail",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1VerifyMyUserEmailRequest"
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/mfa/otp": {
"delete": {
"operationId": "RemoveMfaOTP",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"tags": [
"AuthService"
]
},
"post": {
"summary": "MFA",
"operationId": "AddMfaOTP",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1MfaOtpResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"properties": {}
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/mfa/otp/_verify": {
"put": {
"operationId": "VerifyMfaOTP",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1VerifyMfaOtp"
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/mfas": {
"get": {
"operationId": "GetMyMfas",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1MultiFactors"
}
}
},
"tags": [
"AuthService"
]
}
},
"/users/me/passwords/_change": {
"put": {
"summary": "Password",
"operationId": "ChangeMyPassword",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1PasswordChange"
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/phone": {
"get": {
"operationId": "GetMyUserPhone",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserPhone"
}
}
},
"tags": [
"AuthService"
]
},
"put": {
"operationId": "ChangeMyUserPhone",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserPhone"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1UpdateUserPhoneRequest"
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/phone/_resendverification": {
"post": {
"operationId": "ResendMyPhoneVerificationCode",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"properties": {}
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/phone/_verify": {
"post": {
"operationId": "VerifyMyUserPhone",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1VerifyUserPhoneRequest"
}
}
],
"tags": [
"AuthService"
]
}
},
"/users/me/profile": {
"get": {
"summary": "User",
"operationId": "GetMyUserProfile",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserProfile"
}
}
},
"tags": [
"AuthService"
]
},
"put": {
"operationId": "UpdateMyUserProfile",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UserProfile"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1UpdateUserProfileRequest"
}
}
],
"tags": [
"AuthService"
]
}
},
"/validate": {
"get": {
"operationId": "Validate",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"type": "object"
}
}
},
"tags": [
"AuthService"
]
}
}
},
"definitions": {
"protobufNullValue": {
"type": "string",
"enum": [
"NULL_VALUE"
],
"default": "NULL_VALUE",
"description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value."
},
"v1Gender": {
"type": "string",
"enum": [
"GENDER_UNSPECIFIED",
"GENDER_FEMALE",
"GENDER_MALE",
"GENDER_DIVERSE"
],
"default": "GENDER_UNSPECIFIED"
},
"v1IsAdminResponse": {
"type": "object",
"properties": {
"is_admin": {
"type": "boolean",
"format": "boolean"
}
}
},
"v1MFAState": {
"type": "string",
"enum": [
"MFASTATE_UNSPECIFIED",
"MFASTATE_NOT_READY",
"MFASTATE_READY",
"MFASTATE_REMOVED"
],
"default": "MFASTATE_UNSPECIFIED"
},
"v1MfaOtpResponse": {
"type": "object",
"properties": {
"user_id": {
"type": "string"
},
"url": {
"type": "string"
},
"secret": {
"type": "string"
},
"state": {
"$ref": "#/definitions/v1MFAState"
}
}
},
"v1MfaType": {
"type": "string",
"enum": [
"MFATYPE_UNSPECIFIED",
"MFATYPE_SMS",
"MFATYPE_OTP"
],
"default": "MFATYPE_UNSPECIFIED"
},
"v1MultiFactor": {
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/v1MfaType"
},
"state": {
"$ref": "#/definitions/v1MFAState"
}
}
},
"v1MultiFactors": {
"type": "object",
"properties": {
"mfas": {
"type": "array",
"items": {
"$ref": "#/definitions/v1MultiFactor"
}
}
}
},
"v1MyPermissions": {
"type": "object",
"properties": {
"permissions": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1MyProjectOrgSearchKey": {
"type": "string",
"enum": [
"MYPROJECTORGSEARCHKEY_UNSPECIFIED",
"MYPROJECTORGSEARCHKEY_ORG_NAME"
],
"default": "MYPROJECTORGSEARCHKEY_UNSPECIFIED"
},
"v1MyProjectOrgSearchQuery": {
"type": "object",
"properties": {
"key": {
"$ref": "#/definitions/v1MyProjectOrgSearchKey"
},
"method": {
"$ref": "#/definitions/v1SearchMethod"
},
"value": {
"type": "string"
}
}
},
"v1MyProjectOrgSearchRequest": {
"type": "object",
"properties": {
"offset": {
"type": "string",
"format": "uint64"
},
"limit": {
"type": "string",
"format": "uint64"
},
"asc": {
"type": "boolean",
"format": "boolean"
},
"queries": {
"type": "array",
"items": {
"$ref": "#/definitions/v1MyProjectOrgSearchQuery"
}
}
}
},
"v1MyProjectOrgSearchResponse": {
"type": "object",
"properties": {
"offset": {
"type": "string",
"format": "uint64"
},
"limit": {
"type": "string",
"format": "uint64"
},
"total_result": {
"type": "string",
"format": "uint64"
},
"result": {
"type": "array",
"items": {
"$ref": "#/definitions/v1Org"
}
}
}
},
"v1Org": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"v1PasswordChange": {
"type": "object",
"properties": {
"old_password": {
"type": "string"
},
"new_password": {
"type": "string"
}
}
},
"v1SearchMethod": {
"type": "string",
"enum": [
"SEARCHMETHOD_EQUALS",
"SEARCHMETHOD_STARTS_WITH",
"SEARCHMETHOD_CONTAINS"
],
"default": "SEARCHMETHOD_EQUALS"
},
"v1UpdateUserAddressRequest": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"locality": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"region": {
"type": "string"
},
"street_address": {
"type": "string"
}
}
},
"v1UpdateUserEmailRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
}
}
},
"v1UpdateUserPhoneRequest": {
"type": "object",
"properties": {
"phone": {
"type": "string"
}
}
},
"v1UpdateUserProfileRequest": {
"type": "object",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"nick_name": {
"type": "string"
},
"display_name": {
"type": "string"
},
"preferred_language": {
"type": "string"
},
"gender": {
"$ref": "#/definitions/v1Gender"
}
}
},
"v1UserAddress": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"country": {
"type": "string"
},
"locality": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"region": {
"type": "string"
},
"street_address": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
},
"creation_date": {
"type": "string",
"format": "date-time"
},
"change_date": {
"type": "string",
"format": "date-time"
}
}
},
"v1UserEmail": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"email": {
"type": "string"
},
"isEmailVerified": {
"type": "boolean",
"format": "boolean"
},
"sequence": {
"type": "string",
"format": "uint64"
},
"creation_date": {
"type": "string",
"format": "date-time"
},
"change_date": {
"type": "string",
"format": "date-time"
}
}
},
"v1UserPhone": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"phone": {
"type": "string"
},
"is_phone_verified": {
"type": "boolean",
"format": "boolean"
},
"sequence": {
"type": "string",
"format": "uint64"
},
"creation_date": {
"type": "string",
"format": "date-time"
},
"change_date": {
"type": "string",
"format": "date-time"
}
}
},
"v1UserProfile": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"user_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"nick_name": {
"type": "string"
},
"display_name": {
"type": "string"
},
"preferred_language": {
"type": "string"
},
"gender": {
"$ref": "#/definitions/v1Gender"
},
"sequence": {
"type": "string",
"format": "uint64"
},
"creation_date": {
"type": "string",
"format": "date-time"
},
"change_date": {
"type": "string",
"format": "date-time"
}
}
},
"v1UserSessionState": {
"type": "string",
"enum": [
"USERSESSIONSTATE_UNSPECIFIED",
"USERSESSIONSTATE_ACTIVE",
"USERSESSIONSTATE_TERMINATED"
],
"default": "USERSESSIONSTATE_UNSPECIFIED"
},
"v1UserSessionView": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"agent_id": {
"type": "string"
},
"auth_state": {
"$ref": "#/definitions/v1UserSessionState"
},
"user_id": {
"type": "string"
},
"user_name": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
"v1UserSessionViews": {
"type": "object",
"properties": {
"user_sessions": {
"type": "array",
"items": {
"$ref": "#/definitions/v1UserSessionView"
}
}
}
},
"v1VerifyMfaOtp": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
}
},
"v1VerifyMyUserEmailRequest": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
}
},
"v1VerifyUserPhoneRequest": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
}
}
}
}