* feat(access-token): Multi-auth middleware support EE-1891 (#5936)
* AnyAuth middleware initial implementation with tests
* using mux.MiddlewareFunc instead of custom definition
* removed redundant comments
* - ExtractBearerToken bouncer func made private
- changed helm token handling functionality to use jwt service to convert token to jwt string
- updated tests
- fixed helm list broken test due to missing token in request context
* rename mwCheckAuthentication -> mwCheckJWTAuthentication
* - introduce initial api-key auth support using X-API-KEY header
- added tests to validate x-api-key request header presence
* updated core mwAuthenticatedUser middleware to support multiple auth paradigms
* - simplified anyAuth middleware
- enforcing authmiddleware to implement verificationFunc interface
- created tests for middleware
* simplify bouncer
Co-authored-by: Dmitry Salakhov <to@dimasalakhov.com>
* feat(api-key): user-access-token generation endpoint EE-1889 EE-1888 EE-1895 (#6012)
* user-access-token generation endpoint
* fix comment
* - introduction of apikey service
- seperation of repository from service logic - called in handler
* fixed tests
* - fixed api key prefix
- added tests
* added another test for digest matching
* updated swagger spec for access token creation
* api key response returns raw key and struct - easing testability
* test for api key prefix length
* added another TODO to middleware
* - api-key prefix rune -> string (rune does not auto-encode when response sent back to client)
- digest -> pointer as we want to allow nil values and omit digest in responses (when nil)
* - updated apikey struct
- updated apikey service to support all common operations
- updated apikey repo
- integration of apikey service into bouncer
- added test for all apikey service functions
- boilerplate code for apikey service integration
* - user access token generation tests
- apiKeyLookup updated to support query params
- added api-key tests for query params
- added api-key tests for apiKeyLookup
* get and remove access token handlers
* get and remove access token handler tests
* - delete user deletes all associated api keys
- tests for this functionality
* removed redundant []byte cast
* automatic api-key eviction set within cache for 1 hour
* fixed bug with loop var using final value
* fixed service comment
* ignore bolt error responses
* case-insensitive query param check
* simplified query var assignment
* - added GetAPIKey func to get by unique id
- updated DeleteAPIKey func to not require user ID
- updated tests
* GenerateRandomKey helper func from github.com/gorilla/securecookie moved to codebase
* json response casing for api-keys fixed
* updating api-key will update the cache
* updated golang LRU cache
* using hashicorps golang-LRU cache for api keys
* simplified jwt check in create user access token
* fixed api-key update logic on cache miss
* Prefix generated api-keys with `ptr_` (#6067)
* prefix api-keys with 'ptr_'
* updated apikey description
* refactor
Co-authored-by: Dmitry Salakhov <to@dimasalakhov.com>
* helm list test refactor
* fixed user delete test
* reduce test nil pointer errors
* using correct http 201 created status code for token creation; updated tests
* fixed swagger doc user id path param for user access token based endpoints
* added api-key security openapi spec to existing jwt secured endpoints (#6091)
* fixed flaky test
* apikey datecreated and lastused attrs converted to unix timestamp
* feat(user): added access token datatable. (#6124)
* feat(user): added access token datatable.
* feat(tokens): only display lastUsed time when it is not the default date
* Update app/portainer/views/account/accountController.js
Co-authored-by: zees-dev <63374656+zees-dev@users.noreply.github.com>
* Update app/portainer/views/account/accountController.js
Co-authored-by: zees-dev <63374656+zees-dev@users.noreply.github.com>
* Update app/portainer/views/account/accountController.js
Co-authored-by: zees-dev <63374656+zees-dev@users.noreply.github.com>
* Update app/portainer/components/datatables/access-tokens-datatable/accessTokensDatatableController.js
Co-authored-by: zees-dev <63374656+zees-dev@users.noreply.github.com>
* Update app/portainer/services/api/userService.js
Co-authored-by: zees-dev <63374656+zees-dev@users.noreply.github.com>
* feat(improvements): proposed datatable improvements to speed up dev time (#6138)
* modal code update
* updated datatable filenames, updated controller to be default class export
* fix(access-token): code improvement.
Co-authored-by: zees-dev <63374656+zees-dev@users.noreply.github.com>
* feat(apikeys): create access token view initial implementation EE-1886 (#6129)
* CopyButton implementation
* Code component implementation
* ToolTip component migration to another folder
* TextTip component implementation - continued
* form Heading component
* Button component updated to be more dynamic
* copybutton - small size
* form control pass tip error
* texttip small text
* CreateAccessToken react feature initial implementation
* create user access token angularjs view implementation
* registration of CreateAccessToken component in AngularJS
* user token generation API request moved to angular service, method passed down instead
* consistent naming of access token operations; clustered similar code together
* any user can add access token
* create access token page routing
* moved code component to the correct location
* removed isadmin check as all functionality applicable to all users
* create access token angular view moved up a level
* fixed PR issues, updated PR
* addressed PR issues/improvements
* explicit hr for horizontal line
* fixed merge conflict storybook build breaking
* - apikey test
- cache test
* addressed testing issues:
- description validations
- remove token description link on table
* fix(api-keys): user role change evicts user keys in cache EE-2113 (#6168)
* user role change evicts user api keys in cache
* EvictUserKeyCache -> InvalidateUserKeyCache
* godoc for InvalidateUserKeyCache func
* additional test line
* disable add access token button after adding token to prevent spam
Co-authored-by: Dmitry Salakhov <to@dimasalakhov.com>
Co-authored-by: fhanportainer <79428273+fhanportainer@users.noreply.github.com>
* add updateSettingsToDB28 func and test
* update DBversion const
* migration func naming modification
* feat(oauth): add sso, hide internal auth teaser and logout options. (#5039)
* cleanup and make helper func for unit testing
* dbversion update
* feat(publicSettings): public settings response modification for OAuth SSO EE-608 (#5062)
* feat(oauth): updated logout logic with logoutUrl. (#5064)
* add exclusive token generation for OAuth
* swagger annotation revision
* add unit test
* updates based on tech review feedback
* feat(oauth): updated oauth settings model
* feat(oauth): added oauth logout url
* feat(oauth): fixed SSO toggle and logout issue.
* set SSO to ON by default
* update migrator unit test
* set SSO to true by default for new instance
* prevent applying the SSO logout url to the initial admin user
Co-authored-by: fhanportainer <79428273+fhanportainer@users.noreply.github.com>
Co-authored-by: Felix Han <felix.han@portainer.io>
* refactor(oauth): move oauth client code
* feat(oauth): move extension code into server code
* feat(oauth): enable oauth without extension
* refactor(oauth): make it easier to remove providers
* feat(kubernetes): fix duplicate published mode
* feat(kubernetes): group port mappings by applications
* feat(kubernetes): updated UX
* feat(kubernetes): updated UX
* feat(kubernetes): new applications list view
* fix(kubernetes): applications - expand ports on row click
* refactor(kubernetes): applications - replace old view with new
* fix(kubernetes): disable access management for default resource pool
* feat(kubernetes): app creation - limit stacks suggestion to selected resource pool
* feat(kubernetes): do not allow access management on system resource pools
* refactor(kubernetes): refactor services
* create view node detail
* compute node status
* compute resource reservations
* resource reservation progress bar
* create applications node datatable
* fix(kubernetes): fix invalid method name
* feat(kubernetes): minor UI changes
* feat(kubernetes): update application inspect UI
* feat(kubernetes): add the ability to copy load balancer IP
* fix(kubernetes): minor fixes on applications view
* feat(kubernetes): set usage level info on progress bars
* fix(kubernetes): fix an issue with duplicate pagination controls
* fix(kubernetes): fix an issue with unexpandable items
* refacto(kubernetes): clean status and resource computation
* fix(kubernetes): remove a bad line
* feat(kubernetes): update application detail view
* feat(kubernetes): change few things on view
* refacto(kubernetes): Corrections relative to PR #13
* refacto(kubernetes): remove old functions
* feat(kubernetes): add application pod logs
* fix(kubernetes): PR #13
* feat(kubernetes): Enable quotas by default
* feat(kubernetes): allow non admin to have access to ressource pool list/detail view
* feat(kubernetes): UI changes
* fix(kubernetes): fix resource reservation computation in node view
* fix(kubernetes): pods are correctly filter by app name
* fix(kubernetes): nodeapplicationsdatatable is correctly reorder by cpu and memory
* fix(kubernetes): nodeapplications datatable is correctly reorder on reload
* feat(kubernetes): update podService
* refacto(kubernetes): rename nodeInspect as node
* refaceto(kubernetes): use colspan 6 instead of colspan 3
* refacto(kubernetes): use genericdatatablecontroller and make isadmin a binding
* refacto(kubernetes): remove not needed lines
* refacto(kubernetes) extract usageLevelInfo as html filter
* refacto(kubernetes): no line break for params
* refacto(kubernetes): change on node converter and filters
* refacto(kubernetes): remove bad indentations
* feat(kubernetes): add plain text informations about resources limits for non admibn user
* refacto(kubernetes): ES6 format
* refacto(kubernetes): format
* refacto(kubernetes): format
* refacto(kubernetes): add refresh callback for nodeapplicationsdatatable
* refacto(kubernetes): change if else structure
* refactor(kubernetes): files naming and format
* fix(kubernetes): remove checkbox and actions on resourcespools view for non admin
* feat(kubernetes): minor UI update
* fix(kubernetes): bind this on getPodsApplications to allow it to access $async
* fix(kubernetes): bind this on getEvents to allow it to access $async
* fix(kubernetes): format
* feat(kubernetes): minor UI update
* feat(kubernetes): add support for container console
* fix(kubernetes): fix a merge issue
* feat(kubernetes): update container console UI
* fix(api): fix typo
* feat(api): proxy pod websocket to agent
* fix(api): fix websocket pod proxy
* refactor(kubernetes): uniformize k8s merge comments
* refactor(kubernetes): update consoleController
* feat(kubernetes): prevent the removal of the default resource pool (#38)
* feat(kubernetes): show all applications running inside the resource pool (#35)
* add new datatable
* feat(kubernetes): add resource pool applications datatable to resource pool detail view
* refacto(kubernetes): factorise computeResourceReservation
* fix(kubernetes): colspan 6 to colspan 5
* fix(kubernetes): rename resourceReservationHelper into kubernetesResourceReservationHelper
* fix(kubernetes): add await to avoid double diggest cycles
* feat(kubernetes): add link to application name
* fix(kubernetes): change kubernetes-resource-pool-applications-datatable table key
* fix(kubernetes): change wording
* feat(kubernetes): add proper support for persisted folders (#36)
* feat(kubernetes): persistent volume mockups
* feat(kubernetes): persistent volume mockups
* feat(kubernetes): update persisted folders mockups
* feat(kubernetes): endpoint configure storage access policies
* fix(kubernetes): restrict advanced deployment to admin
* refactor(kubernetes): storageclass service / rest / model
* refactor(kubernetes): params/payload/converter pattern for deployments and daemonsets
* feat(kubernetes): statefulset management for applications
* fix(kubernets): associate application and pods
* feat(kubernetes): statefulset support for applications
* refactor(kubernetes): rebase on pportainer/k8s
* fix(kubernetes): app create - invalid targetPort on loadbalancer
* fix(kubernetes): internal services showed as loadbalancer
* fix(kubernetes): service ports creation / parsing
* fix(kubernetes): remove ports on headless services + ensure nodePort is used only for Cluster publishing
* fix(kubernetes): delete headless service on statefulset delete
* fix(kubernetes): statefulset replicas count display
* refactor(kubernetes): rebase on pportainer/k8s
* refactor(kubernetes): cleanup
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* fix(kubernetes): remove mockup routes
* feat(kubernetes): only display applications running on node/in resource pool when there are any
* feat(kubernetes): review resource reservations and leverage requests instead of limits (#40)
* fix(kubernetes): filter resource reservation by app in node view (#48)
* refactor(kubernetes): remove review comment
* chore(version): bump version number
* refactor(kubernetes): remove unused stacks view and components
* feat(kubernetes): update CPU slider step to 0.1 for resource pools (#60)
* feat(kubernetes): round up application CPU values (#61)
* feat(kubernetes): add information about application resource reservat… (#62)
* feat(kubernetes): add information about application resource reservations
* feat(kubernetes): apply kubernetesApplicationCPUValue to application CPU reservation
* refactor(kubernetes): services layer with models/converter/payloads (#64)
* refactor(kubernetes): services layer with models/converter/payloads
* refactor(kubernetes): file rename and comment update
* style(kubernetes): replace strings double quotes with simple quotes
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* fix(kubernetes): filter application by node in node detail view (#69)
* fix(kubernetes): filter applications by node
* fix(kubernetes): remove js error
* refactor(kubernetes): delete resource quota deletion process when deleting a resource pool (#68)
* feat(kubernetes): enforce valid resource reservations and clarify its… (#70)
* feat(kubernetes): enforce valid resource reservations and clarify its usage
* feat(kubernetes): update instance count input behavior
* feat(kubernetes): resource pools labels (#71)
* feat(kubernetes): resource pools labels
* fix(kubernetes): RP/RQ/LR owner label
* feat(kubernetes): confirmation popup on RP delete (#76)
* feat(kubernetes): application labels (#72)
* feat(kubernetes): application labels
* feat(kubernetes): display application owner in details when available
* style(kubernetes): revert StackName column labels
* fix(kubernetes): default displayed StackName
* feat(kubernetes): remove RQ query across cluster (#73)
* refactor(kubernetes): routes as components (#75)
* refactor(kubernetes): routes as components
* refactor(kubernetes): use component lifecycle hook
* refactor(kubernetes): files naming consistency
* fix(kubernetes): fix invalid component name for cluster view
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): update portaineruser cluster role policy rules (#78)
* refactor(kubernetes): remove unused helper
* fix(kubernetes): fix invalid reload link in cluster view
* feat(kubernetes): add cluster resource reservation (#77)
* feat(kubernetes): add cluster resource reservation
* fix(kubernetes): filter resource reservation with applications
* fix(kubernetes): fix indent
* refacto(kubernetes): extract megabytes value calc as resourceReservationHelper method
* fix(kubernetes): remove unused import
* refacto(kubernetes): add resourcereservation model
* fix(kubernetes): add parenthesis on arrow functions parameters
* refacto(kubernetes): getpods in applicationService getAll
* fix(kubernetes): let to const
* fix(kubernetes): remove unused podservice
* fix(kubernetes): fix computeResourceReservation
* fix(kubernetes): app.pods to app.Pods everywhere and camelcase of this.ResourceReservation
* feat(kubernetes): configurations list view (#74)
* feat(kubernetes): add configuration list view
* feat(kubernetes): add configurations datatable
* feat(kubernetes): add item selection
* feat(kubernetes): allow to remove configuration
* feat(kubernetes): allow non admin user to see configurations
* fix(kubernetes): configurations view as component
* feat(kubernetes): remove stack property for secret and configurations
* fix(kubernetes): update import
* fix(kubernetes): remove secret delete payload
* fix(kubernetes): rename configuration model
* fix(kubernetes): remove configmap delete payload
* fix(Kubernetes): fix configuration getAsync
* fix(kubernetes): extract params as variables
* refacto(kubernetes): extract configurations used lines as helper
* fix(kubernetes): add verification of _.find return value
* fix(kubernetes): fix kubernetes configurations datatable callback
* refacto(Kubernetes): extract find before if
* fix(kubernetes): replace this by KubernetesConfigurationHelper in static method
* fix(Kubernetes): fix getASync
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* review(kubernetes): todo comments (#80)
* feat(kubernetes): minor UI update
* feat(kubernetes): round max cpu value in application creation
* feat(kubernetes): minor UI update
* fix(kubernetes): no-wrap resource reservation bar text (#89)
* docs(kubernetes): add review for formValues to resource conversion (#91)
* feat(kubernetes): configuration creation view (#82)
* feat(kubernetes): create configuration view
* feat(kubernetes): add advanced mode and create entry from file
* fix(kubernetes): fix validation issues
* fix(kubernetes): fix wording
* fix(kubernetes): replace data by stringdata in secret payloads
* fix(kubernetes): rename KubernetesConfigurationEntry to KubernetesConfigurationFormValuesDataEntry
* refacto(kubernetes): add isSimple to formValues and change configuration creation pattern
* fix(kubernetes): fix some bugs
* refacto(kubernetes): renaming
* fix(kubernetes): fix few bugs
* fix(kubernetes): fix few bugs
* review(kubernetes): refactor notices
Co-authored-by: xAt0mZ <baron_l@epitech.eu>
* feat(kubernetes): rename codeclimate file
* feat(kubernetes): re-enable codeclimate
* feat(project): update codeclimate configuration
* feat(project): update codeclimate configuration
* feat(project): update codeclimate configuration
* feat(kubernetes): minor UI update
* feat(project): update codeclimate
* feat(project): update codeclimate configuration
* feat(project): update codeclimate configuration
* feat(kubernetes): configuration details view (#93)
* feat(kubernetes): configuration details view
* fix(kubernetes): fix wording
* fix(kubernetes): fix update button
* fix(kubernetes): line indent
* refacto(kubernetes): remove conversion
* refacto(kubernetes): remove useless line
* refacto(kubernetes): remove useless lines
* fix(kubernetes): revert error handling
* fix(kubernetes): fix wording
* fix(kubernetes): revert line deletion
* refacto(kubernetes): change data mapping
* fix(kubernetes): create before delete
* fix(kubernetes): fix duplicate bug
* feat(kubernetes): configurations in application creation (#92)
* feat(kubernetes): application configuration mockups
* feat(kubernetes): update mockup
* feat(kubernetes): app create - dynamic view for configurations
* feat(kubernetes): app create - configuration support
* refactor(kubernetes): more generic configuration conversion function
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): automatically display first entry in configuration creation
* feat(kubernetes): minor UI update regarding applications and configurations
* feat(kubernetes): update Cluster icon in sidebar
* feat(kubernetes): volumes list view (#112)
* feat(kubernetes): add a feedback panel on main views (#111)
* feat(kubernetes): add a feedback panel on main views
* feat(kubernetes): add feedback panel to volumes view
* fix(kubernetes): isolated volumes showed as unused even when used (#116)
* feat(kubernetes): remove limit range from Portainer (#119)
* limits instead of requests (#121)
* feat(kubernetes): volume details (#117)
* feat(kubernetes): volume details
* fix(kubernetes): yaml not showed
* feat(kubernetes): expandable stacks list (#122)
* feat(kubernetes): expandable stacks list
* feat(kubernetes): minor UI update to stacks datatable
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): uibprogress font color (#129)
* feat(kubernetes): minor UI update to resource reservation component
* feat(kubernetes): automatically select a configuration
* refactor(kubernetes): remove comment
* feat(kubernetes): minor UI update
* feat(kubernetes): add resource links and uniformize view headers (#133)
* feat(kubernetes): prevent removal of system configurations (#128)
* feat(kubernetes): prevent removal of system configurations
* fix(kubernetes): KubernetesNamespaceHelper is not a function
* refacto(kubernetes): change prevent removal pattern
* fix(kubernetes): remove unused dependencies
* fix(kubernetes): fix configuration used label (#123)
* fix(kubernetes): fix used configurations
* fix(kubernetes): remove console log
* feat(kubernetes): rename configuration types (#127)
* refacto(kubernetes): fix wording and use configMap instead of Basic in the code
* feat(kubernetes): prevent the removal of system configuration
* fix(kubernetes): remove feat on bad branch
* fix(kubernetes): rename configuration types
* refacto(kubernetes): use a numeric enum and add a filter to display the text type
* refacto(kubernetes): fix wording and use configMap instead of Basic in the code
* feat(kubernetes): prevent the removal of system configuration
* fix(kubernetes): remove feat on bad branch
* fix(kubernetes): rename configuration types
* refacto(kubernetes): use a numeric enum and add a filter to display the text type
* fix(kubernetes): rename file and not use default in switch case
* feat(kubernetes): update advanced deployment UI/UX (#130)
* feat(kubernetes): update advanced deployment UI/UX
* feat(kubernetes): review HTML tags indentation
* feat(kubernetes): applications stacks delete (#135)
* fix(kubernetes): multinode resources reservations (#118)
* fix(kubernetes): filter pods by node
* fix(kubernetes): fix applications by node filter
* fix(kubernetes): filter pods by node
* Update app/kubernetes/views/cluster/node/nodeController.js
Co-authored-by: Anthony Lapenna <anthony.lapenna@portainer.io>
* feat(kubernetes): limit usage of pod console view (#136)
* feat(kubernetes): add yaml and events to configuration details (#126)
* feat(kubernetes): add yaml and events to configuration details
* fix(kubernetes): fix errors on secret details view
* fix(kubernetes): display only events related to configuration
* fix(kubernetes): fix applications by node filter
* fix(kubernetes): revert commit on bad branch
* refacto(kubernetes): refacto configmap get yaml function
* refacto(kubernetes): add yaml into converter
* feat(kubernetes): improve application details (#141)
* refactor(kubernetes): remove applications retrieval from volume service
* feat(kubernetes): improve application details view
* feat(kubernetes): update kompose binary version (#143)
* feat(kubernetes): update kubectl version (#144)
* refactor(kubernetes): rename portainer system namespace (#145)
* feat(kubernetes): add a loading view indicator (#140)
* feat(kubernetes): add an example of view loading indicator
* refactor(css): remove comment
* feat(kubernetes): updated loading pattern
* feat(kubernetes): add loading indicator for resource pool views
* feat(kubernetes): add loading indicator for deploy view
* feat(kubernetes): add loading view indicator to dashboard
* feat(kubernetes): add loading view indicator to configure view
* feat(kubernetes): add loading indicator to configuration views
* feat(kubernetes): add loading indicator to cluster views
* feat(kubernetes): rebase on k8s branch
* feat(kubernetes): update icon size
* refactor(kubernetes): update indentation and tag format
* feat(kubernetes): backend role validation for stack deployment (#147)
* feat(kubernetes): show applications when volume is used
* feat(kubernetes): set empty value when node is not set
* feat(kubernetes): update configuration UI/UX
* feat(kubernetes): update configuration UX
* fix(kubernetes): Invalid value for a configuration (#139)
* fix(kubernetes): Invalid value for a configuration
* fix(kubernetes): remove auto JSON convertion for configMap ; apply it for RPool Accesses only
* refactor(kubernetes): remove unneeded line
* fix(kubernetes): remove default JSON parsing on configMap API retrieval
Co-authored-by: xAt0mZ <baron_l@epitech.eu>
* feat(kubernetes): applications table in configuration details (#154)
* feat(kubernetes): Add the ability to filter system resources (#142)
* feat(kubernetes): hide system configurations
* feat(kubernetes): Add the ability to filter system resources
* feat(kubernetes): add the ability to hide system resources on volumes
* fix(kubernetes): fix few issue in volumesDatatableController
* fix(kubernetes): fix applications / ports / stacks labels
* feat(kubernetes): add volumes and configurations to dashboard (#152)
* feat(kubernetes): event warning indicator (#150)
* feat(kubernetes): event warning indicator for applications
* refactor(kubernetes): refactor events indicator logic
* feat(kubernetes): add event warning indicator to all resources
* feat(kubernetes): fix missing YAML panel for node (#157)
* feat(kubernetes): revised application details view (#159)
* feat(kubernetes): revised application details view
* refactor(kubernetes): remove comment
* feat(kubernetes): rebase on k8s
* refactor(kubernetes): remove extra line
* feat(kubernetes): update kubernetes beta feedback panel locations (#161)
* feat(kubernetes): stack logs (#160)
* feat(kubernetes): stack logs
* fix(kubernetes): ignore starting pods
* fix(kubernetes): colspan on expandable stack applications table
* feat(kubernetes): add an information message about system resources (#163)
* fix(kubernetes): fix empty panel being display in cluster view (#165)
* fix(kubernetes): Invalid CPU unit for node (#156)
* fix(kubernetes): Invalid CPU unit for node
* fix(kubernetes): Invalid CPU unit for node
* refacto(kubernetes): extract parseCPU function in helper
* refacto(kubernetes): rewrite parseCPU function
* feat(kubernetes): add the kube-node-lease namespace to system namespaces (#177)
* feat(kubernetes): tag system applications on node details view (#175)
* feat(kubernetes): tag system applications on node details view
* fix(kubernetes): remove system resources filter
* feat(kubernetes): review UI/UX around volume size unit (#178)
* feat(kubernetes): updates after review (#174)
* feat(kubernetes): update access user message
* feat(kubernetes): relocate resource pool to a specific form section
* feat(kubernetes): review responsiveness of port mappings
* feat(kubernetes): clarify table settings
* feat(kubernetes): add resource reservation summary message
* feat(kubernetes): review wording (#182)
* feat(kubernetes): application stack edit (#179)
* feat(kubernetes): update UI -- update action missing
* feat(kubernetes): application stack update
* feat(kubernetes): change services stacks
* feat(kubernetes): hide default-tokens + prevent remove (#183)
* feat(kubernetes): hide default-tokens + prevent remove
* feat(kubernetes): do not display unused label for system configurations
* fix(kubernetes): minor fix around showing system configurations
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): rebase on k8s branch (#180)
* fix(kubernetes): prevent the display of system resources in dashboard (#186)
* fix(kubernetes): prevent the display of system resources in dashboard
* fix(kubernetes): prevent the display of frontend filtered resource pools
* feat(kubernetes): support downward API for env vars in application details (#181)
* feat(kubernetes): support downward API for env vars in application details
* refactor(kubernetes): remove comment
* feat(kubernetes): minor UI update
* feat(kubernetes): remove Docker features (#189)
* chore(version): bump version number (#187)
* chore(version): bump version number
* feat(kubernetes): disable update notice
* feat(kubernetes): minor UI update
* feat(kubernetes): minor UI update
* feat(kubernetes): form validation (#170)
* feat(kubernetes): add published node port value check
* feat(kubernetes): add a dns compliant validation
* fix(kubernetes): fix port range validation
* feat(kubernetes): lot of form validation
* feat(kubernetes): add lot of form validation
* feat(kubernetes): persisted folders size validation
* feat(kubernetes): persisted folder path should be unique
* fix(kubernetes): fix createResourcePool button
* fix(kubernetes): change few things
* fix(kubernetes): fix slider memory
* fix(kubernetes): fix duplicates on dynamic field list
* fix(kubernetes): remove bad validation on keys
* feat(kubernetes): minor UI enhancements and validation updates
* feat(kubernetes): minor UI update
* fix(kubernetes): revert on slider fix
* review(kubernetes): add future changes to do
* fix(kubernetes): add form validation on create application memory slider
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
Co-authored-by: xAt0mZ <baron_l@epitech.eu>
* feat(kubernetes): remove Docker related content
* feat(kubernetes): update build system to remove docker binary install
* fix(kubernetes): fix an issue with missing user settings
* feat(kubernetes): created column for apps and resource pools (#184)
* feat(kubernetes): created column for apps and resource pools
* feat(kubernetes): configurations and volumes owner
* feat(kubernetes): rename datatables columns
* fix(kubernetes): auto detect statefulset headless service name (#196)
* fix(applications): display used configurations (#198)
* feat(kubernetes): app details - display data access policy (#199)
* feat(kubernetes): app details - display data access policy
* feat(kubernetes): tooltip on data access info
* feat(kubernetes): move DAP tooltip to end of line
* feat(kubernetes): minor UI update
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* fix(kubernetes): fix an issue when updating the local endpoint (#204)
* fix(kubernetes): add unique key to configuration overriden key path field (#207)
* feat(kubernetes): tag applications as external (#221)
* feat(kubernetes): tag applications as external first approach
* feat(kubernetes): tag applications as external
* feat(kubernetes): Use ibytes as the default volume size unit sent to the Kubernetes API (#222)
* feat(kubernetes): Use ibytes as the default volume size unit sent to the Kubernetes API
* fix(kubernetes): only display b units in list and details views
* feat(kubernetes): add note to application details (#212)
* feat(kubernetes): add note to application details
* fix(kubernetes): remove eslintcache
* feat(kubernetes): update application note UI
* feat(kubernetes): add an update button to the note form when a note is already associated to an app
* feat(kubernetes): fix with UI changes
* fix(kubernetes): change few things
* fix(kubernetes): remove duplicate button
* fix(kubernetes): just use a ternary
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): fix data persistence display for isolated DAP (#223)
* feat(kubernetes): add a quick action to copy application name to clipboard (#225)
* feat(kubernetes): revert useless converter changes (#228)
* feat(kubernetes): edit application view (#200)
* feat(kubernetes): application to formValues conversion
* feat(kubernetes): extract applicationFormValues conversion as converter function
* feat(kubernetes): draft app patch
* feat(kubernetes): patch on all apps services + service service + pvc service
* feat(kubernetes): move name to labels and use UUID as kubernetes Name + patch recreate if necessary
* feat(kubernetes): move user app name to label and use UUID for Kubernetes Name field
* feat(kubernetes): kubernetes service patch mechanism
* feat(kubernetes): application edit
* feat(kubernetes): remove stack edit on app details
* feat(kubernetes): revert app name saving in label - now reuse kubernetes Name field
* feat(kubernetes): remove the ability to edit the DAP
* feat(kubernetes): cancel button on edit view
* feat(kubernetes): remove ability to add/remove persisted folders for SFS edition
* feat(kubernetes): minor UI update and action changes
* feat(kubernetes): minor UI update
* feat(kubernetes): remove ability to edit app volumes sizes + disable update button if no changes are made + codeclimate
* fix(kubernetes): resource reservation sliders in app edit
* fix(kubernetes): patch returned with 422 when trying to create nested objects
* fix(kubernetes): changing app deployment type wasn't working (delete failure)
* style(kubernetes): codeclimate
* fix(kubernetes): app edit - limits sliders max value
* feat(kubernetes): remove prefix on service name as we enforce DNS compliant app names
* fix(kubernetes): edit app formvalues replica based on target replica count and not total pods count
* fix(kubernetes): disable update for RWO on multi replica + delete service when changing app type
* fix(kubernetes): app details running / target pods display
* feat(kubernetes): add partial patch for app details view
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): disable edit capability for external and system apps (#233)
* feat(kubernetes): minor UI update
* fix(kubernetes): edit application issues (#235)
* feat(kubernetes): disable edition of load balancer if it's in pending state
* fix(kubernetes): now able to change from LB to other publishing types
* feat(kuberntes): modal on edit click to inform on potential service interruption
* feat(kubernetes): hide note when empty + add capability to collapse it
* fix(kubernetes): UI/API desync + app update button enabled in some cases where it shouldn't be
* fix(kubernetes): all apps are now using rolling updates with specific conditions
* style(kubernetes): code indent
* fix(kubernetes): disable sync process on endpoint init as current endpoint is not saved in client state
* fix(kubernetes): sliders refresh on app create + app details bad display for sfs running pods
* feat(kubernetes): minor UI update
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): bump up kubectl version to v1.18.0
* feat(kubernetes): when refreshing a view, remember currently opened tabs (#226)
* feat(kubernetes): When refreshing a view, remember currently opened tabs
* fix(kubernetes): only persist the current tab inside the actual view
* fix(kubernetes): not working with refresh in view header
* fix(kubernetes): skip error on 404 headless service retrieval if missconfigured in sfs (#242)
* refactor(kubernetes): use KubernetesResourcePoolService instead of KubernetesNamespaceService (#243)
* fix(kubernetes): create service before app to enforce port availability (#239)
* fix(kubernetes): external flag on application ports mappings datatable (#245)
* refactor(kubernetes): remove unused KubernetesResourcePoolHelper (#246)
* refactor(kubernetes): make all *service.getAllAsync functions consistent (#249)
* feat(kubernetes): Tag external applications in the application table of the resource pool details view (#251)
* feat(kubernetes): add ability to redeploy application (#240)
* feat(kubernetes): add ability to redeploy application
* feat(kubernetes): allow redeploy for external apps
* Revert "feat(kubernetes): allow redeploy for external apps"
This reverts commit 093375a7e93c1a07b845ebca1618da034a97fbcd.
* refactor(kubernetes): use KubernetesPodService instead of REST KubernetesPods (#247)
* feat(kubernetes): prevent configuration properties edition (#248)
* feat(kubernetes): prevent configuration properties edition
* feat(kubernetes): Relocate the Data/Actions to a separate panel
* feat(kubernetes): remove unused functions
* feat(kubernetes): minor UI update
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* refactor(kubernetes): Simplify the FileReader usage (#254)
* refactor(kubernetes): simplify FileReader usage
* refactor(kubernetes): Simplify FileReader usage
* refactor(kubernetes): rename e as event for readability
* feat(kubernetes): Tag system Configs in the Config details view (#257)
* refactor(kubernetes): Refactor the isFormValid function of multiple controllers (#253)
* refactor(kubernetes): refactor isFormValid functions in configurations
* refactor(kubernetes): refactor isformValid functions in create application
* refactor(kubernetes): remove duplicate lines
* refactor(kubernetes): remove commented line
* feat(kubernetes): Tag external volumes and configs (#250)
* feat(kubernetes): Tag external volumes and configs
* feat(kubernetes): remove .eslintcache
* feat(kubernetes): change few things
* feat(kubernetes): don't tag system configuration as external
* feat(kubernetes): minor UI update
* feat(kubernetes): extract inline css and clean all tags
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* fix(kubernetes): daemon set edit (#258)
* fix(kubernetes): persistent folder unit parsing
* fix(kubernetes): edit daemonset on RWO storage
* fix(kubernetes): external SFS had unlinked volumes (#264)
* feat(kubernetes): prevent to override two different configs on the same filesystem path (#259)
* feat(kubernetes): prevent to override two different configs on the same filesystem path
* feat(kubernetes): The validation should only be triggered across Configurations.
* feat(kubernetes): fix validations issues
* feat(kubernetes): fix form validation
* feat(kubernetes): fix few things
* refactor(kubernetes): Review the code mirror component update for configurations (#260)
* refactor(kubernetes): extract duplicate configuration code into a component
* refactor(kubernetes): fix form validation issues
* refactor(kubernetes): fix missing value
* refactor(kubernetes): remove useless await
* feat(kubernetes): Update the shared access policy configuration for Storage (#263)
* feat(kubernetes): Update the shared access policy configuration for Storage
* Update app/kubernetes/models/storage-class/models.js
* feat(kubernetes): remove ROX references and checks
Co-authored-by: Anthony Lapenna <anthony.lapenna@portainer.io>
Co-authored-by: xAt0mZ <baron_l@epitech.eu>
* feat(kubernetes): provide the remove/restore UX for environment variables when editing an application (#261)
* feat(kubernetes): Provide the remove/restore UX for environment variables when editing an application
* feat(kubernetes): fix ui issue
* feat(kubernetes): change few things
* fix(kubernetes): Invalid display for exposed ports in accessing the application section (#267)
* feat(kubernetes): application rollback (#269)
* feat(kubernetes): retrieve all versions of a deployment
* feat(kubernetes): application history for all types
* feat(kubernetes): deployment rollback
* feat(kubernetes): daemonset / statefulset rollback
* feat(kubernetes): remove the revision selector and rollback on previous version everytime
* feat(kubernetes): minor UI changes
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): reservations should be computed based on requests instead of limits (#268)
* feat(kubernetes): Reservations should be computed based on requests instead of limits
* feat(kubernetes): use requests instead of limits in application details
* feat(kubernetes): removes unused limits
* feat(kubernetes): Not so useless
* feat(kubernetes): use service selectors to bind apps and services (#270)
* feat(kubernetes): use service selectors to bind apps and services
* Update app/kubernetes/services/statefulSetService.js
* style(kubernetes): remove comment block
Co-authored-by: Anthony Lapenna <anthony.lapenna@portainer.io>
* chore(version): bump version number
* feat(kubernetes): update feedback panel text
* chore(app): add prettier to k8s
* style(app): apply prettier to k8s codebase
* fix(kubernetes): Cannot read property 'port' of undefined (#272)
* fix(kubernetes): Cannot read property 'port' of undefined
* fix(kubernetes): concat app ports outside publishedports loop
* fix(application): fix broken display of the persistence layer (#274)
* chore(kubernetes): fix conflicts
* chore(kubernetes): fix issues related to conflict resolution
* refactor(kubernetes): refactor code related to conflict resolution
* fix(kubernetes): fix a minor issue with assets import
* chore(app): update yarn.lock
* fix(application): ports mapping are now correctly detected (#300)
* fix(build-system): fix missing docker binary download step
* feat(kubernetes): application auto scaling details (#301)
* feat(kubernetes): application auto scaling details
* feat(kubernetes): minor UI update
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(kubernetes): Introduce a "used by" column in the volume list view (#303)
Co-authored-by: xAt0mZ <baron_l@epitech.eu>
Co-authored-by: Maxime Bajeux <max.bajeux@gmail.com>
Co-authored-by: xAt0mZ <xAt0mZ@users.noreply.github.com>
* feat(auth): introduce new timeout constant
* feat(auth): pass timeout from handler
* feat(auth): add timeout selector to auth settings view
* feat(settings): add user session timeout property
* feat(auth): load user session timeout from settings
* fix(settings): use correct time format
* feat(auth): remove no-auth flag
* refactor(auth): move timeout mgmt to jwt service
* refactor(client): remove no-auth checks from client
* refactor(cli): remove defaultNoAuth
* feat(settings): create settings with default user timeout value
* refactor(db): save user session timeout always
* refactor(jwt): return error
* feat(auth): set session timeout in jwt service on update
* feat(auth): add description and time settings
* feat(auth): parse duration
* feat(settings): validate user timeout format
* refactor(settings): remove unneccesary import
* feat(api): relocate authorizations outside of JWT
* fix(api): update user authorization after enabling the RBAC extension
* feat(api): add PortainerEndpointList operation in the default portainer authorizations
* feat(auth): retrieve authorization from API instead of JWT
* refactor(auth): move permissions retrieval to function
* refactor(api): document authorizations methods
* 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
* feat(api): add a setting to toggle automatic user provisioning when using LDAP authentication
* fix(auth): fix an issue with AutoCreateUsers disabled