Florian Forster
fdcf728d71
docs(search): integrated algolia (thank you 🥳 )
2021-04-20 17:10:03 +02:00
Florian Forster
2c20292b24
docs: logo in readme ( #1621 )
2021-04-20 06:41:38 +02:00
Livio Amstutz
6863aeac59
feat: custom domain feature ( #1618 )
...
* fix: custom domain
* fix: custom domain
* fix: custom domain
* fix: custom domain feature in proto
* fix: remove custom domains on feature downgrade
* fix test
* fix: custom domain feature in proto
* ensure tests work
Co-authored-by: fabi <fabienne.gerschwiler@gmail.com>
2021-04-19 16:43:36 +02:00
Fabi
c2fedbbfc6
docs: generate admin api ( #1584 )
...
* fix: generate admin api
* fix: generate admin api
* fix: generate admin api
* fix: http option
* fix: admin api
* fix: md files
* fix: correct headers
* fix: proto definitions
* fix: proto api
* fix: proto api
* fix: proto api
* fix: proto api
2021-04-15 18:21:46 +02:00
Florian Forster
dfc9488bb5
docs: rework documentation site ( #1589 )
...
* initial commit
* inital changes
* commit WIP Information Architecture
* commit a working state
* add static assets and project
* add org and fix img names
* add plausible
* remove img
* change sidebar to easier mgmt
* add openid oauth and domains
* lint md
* quickstarts
* add auth flow
* identity brokering
* remove site
* fix broken links
* extend footer
* extend readme
* fix: styling
* fix: zitadel logo on index
* styling
* border
* fix: nav
* fix: nav
* fix: index
* fix: rename architecture to concepts
* fix: introductions
* fix: introductions
* fix: introductions
* fix: get started
* fix: user manual
* fix: zitadel architecture
* fix: dead links
* add favicon
Co-authored-by: fabi <fabienne.gerschwiler@gmail.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
2021-04-15 13:22:37 +02:00
Florian Forster
ef3b7482cd
chore(documentation): documentation and manuals for ZITADEL ( #710 )
...
* chore: cleanup old docs folder
* remove docs path trigger
* wip docs structure
* chore: ignore site changes in ci
* add manuals route
* new structure
* structure
* Use correct title
* remove trigger for code scan for static site generator
* change names
* add lorem ipsum to test styling
* use h3 to deeplink
* add site to dependabot
* lint readme.md
* remove not needed file
* ignore site on pull request code scan
* add initial contrib
* Minor correction
* Added section Developer & Integration
* Changed link list layout, added labels, added translations
* Added missing <li> tags
* Added correct link to section Developer & Integration
* Fixing list style
* Overhauling description texts and translations
* outline
* teaser go
* outline
* wip
* rework
* wip
* wip
* wip
* hop
* wip
* first draft for "administrate" done
* init outline
* fix deploy step
* lint
* commit wip
* commit wip
* md lint
* Link
* fix: path to edit (#711 )
* wip
* wip
* wip
* what are...
* use only features
* wip docs
* Update 00-user.en.md
* project
* uppercase en
* wip
* wip
* wip
* policies rework
* improve text
* correct typo
* update readme
* correct styling
* add link to docs guides
* make the linter happy
* rename
* wip
* move api to own file
* correct links and lint
* wip roles and integration
* add pkce
* reduce padding and margin
* wip scope and claims
* wip claim & scopes
* make the linter happy
* insert links where possible
* wip
* wip roles & providers
* Update README.md
* Update 00-user.en.md
* minor text improvements
* use master branch to deploy
* use proper ci file
* Apply suggestions from code review
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Matthias M. Schneider <mati@matimax.info>
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
2020-10-16 14:13:02 +02:00
Fabi
db1d8f4efe
feat: idp and login policy configurations ( #619 )
...
* feat: oidc config
* fix: oidc configurations
* feat: oidc idp config
* feat: add oidc config test
* fix: tests
* fix: tests
* feat: translate new events
* feat: idp eventstore
* feat: idp eventstore
* fix: tests
* feat: command side idp
* feat: query side idp
* feat: idp config on org
* fix: tests
* feat: authz idp on org
* feat: org idps
* feat: login policy
* feat: login policy
* feat: login policy
* feat: add idp func on login policy
* feat: add validation to loginpolicy and idp provider
* feat: add default login policy
* feat: login policy on org
* feat: login policy on org
* fix: id config handlers
* fix: id config handlers
* fix: create idp on org
* fix: create idp on org
* fix: not existing idp config
* fix: default login policy
* fix: add login policy on org
* fix: idp provider search on org
* fix: test
* fix: remove idp on org
* fix: test
* fix: test
* fix: remove admin idp
* fix: logo src as byte
* fix: migration
* fix: tests
* Update internal/iam/repository/eventsourcing/iam.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* Update internal/iam/repository/eventsourcing/iam_test.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* Update internal/iam/repository/eventsourcing/iam_test.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* Update internal/iam/repository/eventsourcing/model/login_policy.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* Update internal/iam/repository/eventsourcing/model/login_policy.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* Update internal/org/repository/eventsourcing/org_test.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* Update internal/iam/repository/eventsourcing/model/login_policy_test.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* Update internal/iam/repository/eventsourcing/model/login_policy_test.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* fix: pr comments
* fix: tests
* Update types.go
* fix: merge request changes
* fix: reduce optimization
Co-authored-by: Silvan <silvan.reusser@gmail.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
2020-08-26 09:56:23 +02:00
Max Peintner
77575110bb
docs: new zitadel logo assets, img height in readme ( #612 )
...
* fix: zitadel logo, header padding in docs
* zitadel logo height
* Update README.md
* Update README.md
* use png
* smaller
* Update README.md
* Update README.md
* Update README.md
* Update README.md
2020-08-20 22:18:53 +02:00
Fabi
5c4fef296f
fix: app by id, views with computed objects ( #583 )
...
* feat: read app by id if my events
* fix: handlers if no sublist
* fix: removed app
* fix: removed project
* fix: removed app
* fix: removed app
* fix: app by id with projectid
2020-08-13 08:28:18 +02:00
Fabi
75f1c4c576
feat: user memberships ( #537 )
...
* feat: add search user memberships
* feat: add search user memberships
* feat: read user member ship
* feat: add usergrant search key
* feat: uesrmemberships based on permissions
* feat: merge master
* fix: correct permissions
* fix: update display name on change profile
* fix: merge request converations
* fix: err handling
* Update internal/user/model/user_membership_view.go
Co-authored-by: Silvan <silvan.reusser@gmail.com>
Co-authored-by: Silvan <silvan.reusser@gmail.com>
2020-07-30 14:37:55 +02:00
Fabi
461b7b23b1
fix: usergrant update ( #533 )
...
* fix: add grantid on update usergrant
* fix: add grantid on update usergrant
2020-07-28 12:29:01 +02:00
Fabi
c105bf483b
feat: apiurls, passwordpolicy, userbyid ( #507 )
...
* feat: api doc request
* feat: return zitadel docs
* feat: return zitadel docs
* feat: pw policy min length
* feat: pw policy min length
* fix: semantic
* fix: read missing events on user by id
2020-07-22 16:15:11 +02:00
Max Peintner
0b012f2fa2
fix(console): general fixes, project grants for owned and granted context ( #425 )
...
* update and delete project grants
* fix: user grant id (#421 )
* fix: verboser logging on sql err (#412 )
* fix(eventstore): improve insert statement
* fix: verbose logging on error
* fix: simplify insertEvents
* fix: project grant delete (#417 )
* fix: add grant id to user grant if needed
* fix: add grant id to user grant if needed
Co-authored-by: Silvan <silvan.reusser@gmail.com>
* fix user grant context
* lint
* role validators
* fix: usergrantid (#424 )
* fix: verboser logging on sql err (#412 )
* fix(eventstore): improve insert statement
* fix: verbose logging on error
* fix: simplify insertEvents
* fix: project grant delete (#417 )
* fix: add grant id to user grant if needed
* fix: add grant id to user grant if needed
* fix: add bulk remove
* fix: merge
Co-authored-by: Silvan <silvan.reusser@gmail.com>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Silvan <silvan.reusser@gmail.com>
2020-07-09 15:14:01 +02:00
Fabi
a5bfd085a1
fix: Inituser ( #386 )
...
* fix: init user only create change pw event if pw set
* fix: init user only create change pw event if pw set
* fix: tests
2020-07-08 09:53:09 +02:00
Fabi
1c40d5645e
feat: notification loginname ( #381 )
...
* feat: add login names to notify user
* feat: add login names to initial mail
* feat: add login names to initial mail
2020-07-07 19:31:51 +02:00
Fabi
c8cdbe136c
feat: remove phone ( #349 )
...
* feat: remove phone number
* feat: remove phone number tests
* feat: remove phone number tests
* fix: regenerate protos
2020-07-06 15:48:24 +02:00
Fabi
c8a0a050ba
fix: editorname ( #281 )
...
* feat: editorname on changes
* feat: editorname on changes
* feat: editorname on changes
* feat: editorname on changes
* fix: tests
* fix: tests
2020-06-29 09:37:10 +02:00
Fabi
25b97b1bcc
fix: projectorgs ( #193 )
...
* fix: get my project orgs
* fix: get project orgs
2020-06-09 16:20:14 +02:00
Fabi
49d86fdabb
feat: user commands ( #75 )
...
* feat: eventstore repository
* fix: remove gorm
* version
* feat: pkg
* feat: add some files for project
* feat: eventstore without eventstore-lib
* rename files
* gnueg
* fix: key json
* fix: add object
* fix: change imports
* fix: internal models
* fix: some imports
* fix: global model
* feat: add global view functions
* fix: add some functions on repo
* feat(eventstore): sdk
* fix(eventstore): search query
* fix(eventstore): rename app to eventstore
* delete empty test
* remove unused func
* merge master
* fix(eventstore): tests
* fix(models): delete unused struct
* fix: some funcitons
* feat(eventstore): implemented push events
* fix: move project eventstore to project package
* fix: change project eventstore funcs
* feat(eventstore): overwrite context data
* fix: change project eventstore
* fix: add project repo to mgmt server
* feat(types): SQL-config
* fix: commented code
* feat(eventstore): options to overwrite editor
* feat: auth interceptor and cockroach migrations
* fix: migrations
* fix: fix filter
* fix: not found on getbyid
* fix: use global sql config
* fix: add sequence
* fix: add some tests
* fix(eventstore): nullable sequence
* fix: add some tests
* merge
* fix: add some tests
* fix(migrations): correct statements for sequence
* fix: add some tests
* fix: add some tests
* fix: changes from mr
* fix: changes from mr
* fix: add some tests
* Update internal/eventstore/models/field.go
Co-Authored-By: livio-a <livio.a@gmail.com>
* fix(eventstore): code quality
* fix: add types to aggregate/Event-types
* fix: try tests
* fix(eventstore): rename modifier* to editor*
* fix(eventstore): delete editor_org
* fix(migrations): remove editor_org field,
rename modifier_* to editor_*
* 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
* 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
* 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
* feat: user command side
* user command side
* profile requests
* local config with gopass and more
* 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
* 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
* 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
Co-authored-by: adlerhurst <silvan.reusser@gmail.com>
Co-authored-by: livio-a <livio.a@gmail.com>
2020-05-11 10:16:27 +02:00
Fabi
8464cfa4fe
feat: project grant commands ( #68 )
...
* feat: eventstore repository
* fix: remove gorm
* version
* feat: pkg
* feat: add some files for project
* feat: eventstore without eventstore-lib
* rename files
* gnueg
* fix: key json
* fix: add object
* fix: change imports
* fix: internal models
* fix: some imports
* fix: global model
* feat: add global view functions
* fix: add some functions on repo
* feat(eventstore): sdk
* fix(eventstore): search query
* fix(eventstore): rename app to eventstore
* delete empty test
* remove unused func
* merge master
* fix(eventstore): tests
* fix(models): delete unused struct
* fix: some funcitons
* feat(eventstore): implemented push events
* fix: move project eventstore to project package
* fix: change project eventstore funcs
* feat(eventstore): overwrite context data
* fix: change project eventstore
* fix: add project repo to mgmt server
* feat(types): SQL-config
* fix: commented code
* feat(eventstore): options to overwrite editor
* feat: auth interceptor and cockroach migrations
* fix: migrations
* fix: fix filter
* fix: not found on getbyid
* fix: use global sql config
* fix: add sequence
* fix: add some tests
* fix(eventstore): nullable sequence
* fix: add some tests
* merge
* fix: add some tests
* fix(migrations): correct statements for sequence
* fix: add some tests
* fix: add some tests
* fix: changes from mr
* fix: changes from mr
* fix: add some tests
* Update internal/eventstore/models/field.go
Co-Authored-By: livio-a <livio.a@gmail.com>
* fix(eventstore): code quality
* fix: add types to aggregate/Event-types
* fix: try tests
* fix(eventstore): rename modifier* to editor*
* fix(eventstore): delete editor_org
* fix(migrations): remove editor_org field,
rename modifier_* to editor_*
* 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
* 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
* 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
* fix: problems after merger
* fix: new commit
* fix: remove enum converter
* Update internal/project/model/project_grant.go
Co-Authored-By: Livio Amstutz <livio.a@gmail.com>
* Update internal/project/model/project_grant.go
Co-Authored-By: Livio Amstutz <livio.a@gmail.com>
* Update internal/project/model/project.go
Co-Authored-By: Livio Amstutz <livio.a@gmail.com>
* fix: better sub object handling
* fix: imports
Co-authored-by: adlerhurst <silvan.reusser@gmail.com>
Co-authored-by: livio-a <livio.a@gmail.com>
2020-04-23 07:54:40 +02:00
Florian Forster
28166dd5e0
fix: docker semrel release problem ( #49 )
...
* chore: debug docker semrel
* fix: trigger ci
* fix: a try
* fix: set verify
* chore: dry run false
* test
* fix: implement docker push with semrel
* fix: ci build and docker semrel
2020-04-16 13:46:43 +02:00
Fabi
c07ed83c41
Project commands ( #26 )
...
* feat: eventstore repository
* fix: remove gorm
* version
* feat: pkg
* feat: add some files for project
* feat: eventstore without eventstore-lib
* rename files
* gnueg
* fix: key json
* fix: add object
* fix: change imports
* fix: internal models
* fix: some imports
* fix: global model
* fix: add some functions on repo
* feat(eventstore): sdk
* fix(eventstore): search query
* fix(eventstore): rename app to eventstore
* delete empty test
* remove unused func
* merge master
* fix(eventstore): tests
* fix(models): delete unused struct
* fix: some funcitons
* feat(eventstore): implemented push events
* fix: move project eventstore to project package
* fix: change project eventstore funcs
* feat(eventstore): overwrite context data
* fix: change project eventstore
* fix: add project repo to mgmt server
* feat(types): SQL-config
* fix: commented code
* feat(eventstore): options to overwrite editor
* feat: auth interceptor and cockroach migrations
* fix: migrations
* fix: fix filter
* fix: not found on getbyid
* fix: add sequence
* fix: add some tests
* fix(eventstore): nullable sequence
* fix: add some tests
* merge
* fix: add some tests
* fix(migrations): correct statements for sequence
* fix: add some tests
* fix: add some tests
* fix: changes from mr
* Update internal/eventstore/models/field.go
Co-Authored-By: livio-a <livio.a@gmail.com>
* fix(eventstore): code quality
* fix: add types to aggregate/Event-types
* fix(eventstore): rename modifier* to editor*
* fix(eventstore): delete editor_org
* fix(migrations): remove editor_org field,
rename modifier_* to editor_*
* 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
* feat: start implementing project members
* feat: remove member funcs
* feat: remove member model
* feat: remove member events
* feat: remove member repo model
* fix: better error func testing
* Update docs/local.md
Co-Authored-By: Silvan <silvan.reusser@gmail.com>
* Update docs/local.md
Co-Authored-By: Silvan <silvan.reusser@gmail.com>
* fix: mr requests
* fix: md file
Co-authored-by: adlerhurst <silvan.reusser@gmail.com>
Co-authored-by: livio-a <livio.a@gmail.com>
2020-04-07 13:23:04 +02:00