Chaim Lev-Ari
4d5836138b
feat(stacks): add the ability to stop a stack ( #4042 )
...
* feat(stacks): add stack status
* feat(stacks): add empty start/stop handlers
* feat(stacks): show start/stop button
* feat(stacks): implement stack stop
* feat(stacks): implement start stack
* feat(stacks): filter by active/inactive stacks
* fix(stacks): update authorizations for stack start/stop
* feat(stacks): assign default status on create
* fix(bolt): fix import
* fix(stacks): show external stacks
* fix(stacks): reload on stop/start
* feat(stacks): confirm before stop
2020-08-04 10:18:53 +12:00
Chaim Lev-Ari
1a3f77137a
feat(settings): introduce setting to disable container caps for non-admins ( #4109 )
...
* feat(settings): introduce settings to allow/disable
* feat(settings): update the setting
* feat(docker): prevent user from using caps if disabled
* refactor(stacks): revert file
* style(api): remove portainer ns
2020-07-28 19:08:15 +12:00
Chaim Lev-Ari
07efd4bdda
feat(settings): add setting to disable device mapping for regular users ( #4099 )
...
* feat(settings): add setting to disable device mapping for regular users
* feat(settings): introduce device mapping service
* feat(containers): hide devices field when setting is on
* feat(containers): prevent passing of devices when not allowed
* feat(stacks): prevent non admin from device mapping
* feat(stacks): disallow swarm stack creation for user
* refactor(settings): replace disableDeviceMapping with allow
* fix(stacks): remove check for disable device mappings from swarm
* feat(settings): rename field to disable
* feat(settings): supply default value for disableDeviceMapping
* feat(container): check for endpoint admin
* style(server): sort imports
2020-07-27 09:31:14 +12:00
Chaim Lev-Ari
adf33385ce
feat(containers): Prevent non-admin users from running containers using the host namespace pid ( #4098 )
...
* feat(containers): prevent non-admin users from running containers using the host namespace pid (#3970 )
* feat(containers): Prevent non-admin users from running containers using the host namespace pid
* feat(containers): add rbac check for swarm stack too
* feat(containers): remove forgotten conflict
* feat(containers): init EnableHostNamespaceUse to true and return 403 on forbidden action
* feat(containers): change enableHostNamespaceUse to restrictHostNamespaceUse in html
* feat(settings): rename EnableHostNamespaceUse to AllowHostNamespaceForRegularUsers
* feat(database): trigger migration for AllowHostNamespace
* feat(containers): check container creation authorization
Co-authored-by: Maxime Bajeux <max.bajeux@gmail.com>
2020-07-25 11:14:46 +12:00
Chaim Lev-Ari
6f6bc24efd
feat(containers): Ensure users cannot create privileged containers via the API ( #3969 ) ( #4077 )
...
* feat(containers): Ensure users cannot create privileged containers via the API
* feat(containers): add rbac check in stack creation
Co-authored-by: Maxime Bajeux <max.bajeux@gmail.com>
2020-07-23 06:38:45 +12:00
Chaim Lev-Ari
db4a5292be
refactor(errors): reorganize errors ( #3938 )
...
* refactor(bolt): move ErrObjectNotFound to bolt
* refactor(http): move ErrUnauthorized to http package
* refactor(http): move ErrResourceAccessDenied to http errors
* refactor(http): move security errors to package
* refactor(users): move user errors to users package
* refactor(errors): move single errors to their package
* refactor(schedules): move schedule error to package
* refactor(http): move endpoint error to http package
* refactor(docker): move docker errors to package
* refactor(filesystem): move filesystem errors to package
* refactor(errors): remove portainer.Error
* style(chisel): reorder imports
* fix(stacks): remove portainer.Error
2020-07-08 09:57:52 +12:00
Anthony Lapenna
25103f08f9
feat(api): introduce new datastore interface ( #3802 )
...
* feat(api): introduce new datastore interface
* refactor(api): refactor http and main layers
* refactor(api): refactor http and bolt layers
2020-06-03 11:40:04 +12:00
Anthony Lapenna
130c188717
fix(libcompose): apply same normalize name rule as libcompose on stack name ( #3395 )
2019-11-24 14:28:07 +13:00
Anthony Lapenna
19d4db13be
feat(api): rewrite access control management in Docker ( #3337 )
...
* feat(api): decorate Docker resource creation response with resource control
* fix(api): fix a potential resource control conflict between stacks/volumes
* feat(api): generate a default private resource control instead of admin only
* fix(api): fix default RC value
* fix(api): update RC authorizations check to support admin only flag
* refactor(api): relocate access control related methods
* fix(api): fix a potential conflict when fetching RC from database
* refactor(api): refactor access control logic
* refactor(api): remove the concept of DecoratedStack
* feat(api): automatically remove RC when removing a Docker resource
* refactor(api): update filter resource methods documentation
* refactor(api): update proxy package structure
* refactor(api): renamed proxy/misc package
* feat(api): re-introduce ResourceControlDelete operation as admin restricted
* refactor(api): relocate default endpoint authorizations
* feat(api): migrate RBAC data
* feat(app): ResourceControl management refactor
* fix(api): fix access control issue on stack deletion and automatically delete RC
* fix(api): fix stack filtering
* fix(api): fix UpdateResourceControl operation checks
* refactor(api): introduce a NewTransport builder method
* refactor(api): inject endpoint in Docker transport
* refactor(api): introduce Docker client into Docker transport
* refactor(api): refactor http/proxy package
* feat(api): inspect a Docker resource labels during access control validation
* fix(api): only apply automatic resource control creation on success response
* fix(api): fix stack access control check
* fix(api): use StatusCreated instead of StatusOK for automatic resource control creation
* fix(app): resource control fixes
* fix(api): fix an issue preventing administrator to inspect a resource with a RC
* refactor(api): remove useless error return
* refactor(api): document DecorateStacks function
* fix(api): fix invalid resource control type for container deletion
* feat(api): support Docker system networks
* feat(api): update Swagger docs
* refactor(api): rename transport variable
* refactor(api): rename transport variable
* feat(networks): add system tag for system networks
* feat(api): add support for resource control labels
* feat(api): upgrade to DBVersion 22
* refactor(api): refactor access control management in Docker proxy
* refactor(api): re-implement docker proxy taskListOperation
* refactor(api): review parameters declaration
* refactor(api): remove extra blank line
* refactor(api): review method comments
* fix(api): fix invalid ServerAddress property and review method visibility
* feat(api): update error message
* feat(api): update restrictedVolumeBrowserOperation method
* refactor(api): refactor method parameters
* refactor(api): minor refactor
* refactor(api): change Azure transport visibility
* refactor(api): update struct documentation
* refactor(api): update struct documentation
* feat(api): review restrictedResourceOperation method
* refactor(api): remove unused authorization methods
* feat(api): apply RBAC when enabled on stack operations
* fix(api): fix invalid data migration procedure for DBVersion = 22
* fix(app): RC duplicate on private resource
* feat(api): change Docker API version logic for libcompose/client factory
* fix(api): update access denied error message to be Docker API compliant
* fix(api): update volume browsing authorizations data migration
* fix(api): fix an issue with access control in multi-node agent Swarm cluster
2019-11-13 12:41:42 +13:00
Anthony Lapenna
fb6f6738d9
fix(api): prevent the use of bind mounts in stacks if setting enabled ( #3232 )
2019-10-07 16:12:21 +13:00
Anthony Lapenna
14845a4a53
refactor(api): refactor base import path ( #2788 )
...
* refactor(api): refactor base import path
* fix(build-system): update build_binary_devops
* fix(build-system): fix build_binary_devops for linux
* fix(build-system): fix build_binary_devops for Windows
2019-03-21 14:20:14 +13:00
Anthony Lapenna
b24891a6bc
refactor(api): introduce libhttp usage ( #2263 )
2018-09-10 12:01:38 +02:00
Jan Jansen
76e1aa97e2
feat(stack-creation): add the ability to specify git reference ( #1948 ) ( #2063 )
2018-07-24 16:11:35 +02:00
Anthony Lapenna
e15da005a5
feat(templates): support env variables in Compose stacks
2018-07-12 09:17:07 +02:00
Anthony Lapenna
dbcc6a9624
fix(stack-creation): use numeric value for stack root folder name ( #2000 )
2018-06-25 14:48:28 +03:00
Anthony Lapenna
a5bd2743f3
fix(stacks): fix an issue with stack update
2018-06-20 20:55:00 +03:00
Anthony Lapenna
b4c2820ad7
refactor(api): use a standard stack identifier ( #1980 )
2018-06-18 12:07:56 +02:00
Anthony Lapenna
e3d564325b
feat(stacks): support compose v2.0 stack ( #1963 )
2018-06-11 15:13:19 +02:00