* start 1.19.5
* deploy 1.19.5-dev-1
* avoid execute_and_poll error when update is already complete or has no id
* improve image tagging customization
* 1.19.5 release
* 1.19.2-dev-0
* deploy 1.19.2-dev-1
* Add option to make run command detachable (#766)
* improve missing files log to include the missing paths
* bump mungos for urlencoding mongo creds
* Update permissioning.md - typo: "priviledges" -> "privileges" (#770)
* Add support for monaco-yaml and docker compose spec validatiaon (#772)
* deploy 1.19.2-dev-2
* on delete user, remove from all user groups
* fix Google login issues around `picture`
* unsafe_unsanitized_startup_config
* improve git provider support re #355
* should fix#468
* should fix exit code re #597
* deploy 1.19.2-dev-3
* fix container ports sorting (#776)
* missing serde default
* deploy 1.19.2-dev-4
* ensure git tokens trimmed in remote url
* Add link to Authentik support docs
* Fix incorrect commit branch when using linked repo re #634
* Better display container port ranges (#786)
* ensure build and sync also commit to correct branch. re #634
* deploy 1.19.2-dev-5
* Improve login form (#788)
* Use proper form for login, add autocomplete and names to input fields
* Do not return null if loading
* Remove unused function
* Cleanup and streamline
* improve login screen flash on reload
* first builder given same name as first server
* 1.19.2
---------
Co-authored-by: mbecker20 <max@mogh.tech>
Co-authored-by: Brian Bradley <brian.bradley.p@gmail.com>
Co-authored-by: Ravi Wolter-Krishan <rkn@gedikas.net>
Co-authored-by: Christopher Hoage <iam@chrishoage.com>
Co-authored-by: jack <45038833+jackra1n@users.noreply.github.com>
* start 1.19.1
* deploy 1.19.1-dev-1
* Global Auto Update rustdoc
* support stack additional files
* deploy 1.19.1-dev-2
* Fe support additional file language detection
* fix tsc
* Fix: Example code blocks got interpreted as rust code, leading to compilation errors (#743)
* Enhanced Server Stats Dashboard with Performance Optimizations (#746)
* Improve the layout of server mini stats in the dashboard.
- Server stats and tags made siblings for clearer responsibilities
- Changed margin to padding
- Unreachable indicator made into an overlay of the stats
* feat: optimize dashboard server stats with lazy loading and smart server availability checks
- Add enabled prop to ServerStatsMini for conditional data fetching
- Implement server availability check (only fetch stats for Ok servers, not NotOk/Disabled)
- Prevent 500 errors by avoiding API calls to offline servers
- Increase polling interval from 10s to 15s and add 5s stale time
- Add useMemo for expensive calculations to reduce re-renders
- Add conditional overlay rendering for unreachable servers
- Only render stats when showServerStats preference is enabled
* fix: show disabled servers with overlay instead of hiding component
- Maintain consistent layout by showing disabled state overlay
- Prevent UX inconsistency where disabled servers disappeared entirely
* fix: show button height
* feat: add enhance card animations
* cleanup
* gen types
* deploy 1.19.1-dev-3
* add .ini
* deploy 1.19.1-dev-4
* simple configure action args as JSON
* server enabled actually defaults false
* SendAlert via Action / CLI
* fix clippy if let string
* deploy 1.19.1-dev-5
* improve cli ergonomics
* gen types and fix responses formatting
* Add RunStackService API implementing `docker compose run` (#732)
* Add RunStackService API implementing `docker compose run`
* Add working Procedure configuration
* Remove `km execute run` alias. Remove redundant ``#[serde(default)]` on `Option`.
* Refactor command from `String` to `Vec<String>`
* Implement proper shell escaping
* bump deps
* Update configuration.md - fix typo: "affect" -> "effect" (#747)
* clean up SendAlert doc
* deploy 1.19.1-dev-6
* env file args won't double pass env file
* deploy 1.19.1-dev-7
* Add Enter Key Support for Dialog Confirmations (#750)
* start 1.19.1
* deploy 1.19.1-dev-1
* Implement usePromptHotkeys for enhanced dialog interactions and UX
* Refactor usePromptHotkeys to enhance confirm button detection and improve UX
* Remove forceConfirmDialog prop from ActionWithDialog and related logic for cleaner implementation
* Add dialog descriptions to ConfirmUpdate and ActionWithDialog for better clarity and resolve warnings
* fix
* Restore forceConfirmDialog prop to ActionWithDialog for enhanced confirmation handling
* cleanup
* Remove conditional className logic from ConfirmButton
---------
Co-authored-by: mbecker20 <max@mogh.tech>
* Support complex file depency action resolution
* get FE compile
* deploy 1.19.1-dev-8
* implement additional file dependency configuration
* deploy 1.19.1-dev-9
* UI default file dependency None
* default additional file requires is None
* deploy 1.19.1-dev-10
* rename additional_files => config_files for clarity
* deploy 1.19.1-dev-11
* fix skip serializing if None
* deploy 1.19.1-dev-12
* stack file dependency toml parsing aliases
* fmt
* Add: Server Version Mismatch Warnings & Alert System (#748)
* start 1.19.1
* deploy 1.19.1-dev-1
* feat: implement version mismatch warnings in server UI
- Replace orange warning colors with yellow for better visibility
- Add version mismatch detection that shows warnings instead of OK status
Implement responsive "VERSION MISMATCH" badge layout
- Update server dashboard to include warning counts
- Add backend version comparison logic for GetServersSummary
* feat: add warning count to server summary and update backup documentation link
* feat: add server version mismatch alert handling and update server summary invalidation logic
* fix: correct version mismatch alert config and disabled server display
- Use send_version_mismatch_alerts instead of send_unreachable_alerts
- Show 'Unknown' instead of 'Disabled' for disabled server versions
- Remove commented VersionAlert and Alerts UI components
- Update version to 1.19.0
* cleanup
* Update TypeScript types after merge
* cleanup
* cleanup
* cleanup
* Add "ServerVersionMismatch" to alert types
* Adjust color classes for warning states and revert server update invalidation logic
---------
Co-authored-by: mbecker20 <max@mogh.tech>
* backend for build multi registry push support
* deploy 1.19.1-dev-13
* build multi registry configuration
* deploy 1.19.1-dev-14
* fix invalid tokens JSON
* DeployStackIfChanged restarts also update stack.info.deployed_contents
* update deployed services comments
* deploy 1.19.1-dev-15
* Enhance server monitoring with load average data and new server monitoring table (#761)
* add monitoring page
* initial table
* moving monitoring table to servers
* add cpu load average
* typeshare doesnt allow tuples
* fix GetHistoricalServerStats
* add loadAvg to the server monitoring table
* improve styling
* add load average chart
* multiple colors for average loads chart
* make load average chart line and non-stacked
* cleanup
* use server thresholds
* cleanup
* Change "Dependents:" to "Services:" in config file service dependency
selector
* deploy 1.19.1-dev-16
* 1.19.1
---------
Co-authored-by: mbecker20 <max@mogh.tech>
Co-authored-by: Marcel Pfennig <82059270+MP-Tool@users.noreply.github.com>
Co-authored-by: Brian Bradley <brian.bradley.p@gmail.com>
Co-authored-by: Ravi Wolter-Krishan <rkn@gedikas.net>
Co-authored-by: jack <45038833+jackra1n@users.noreply.github.com>
* update easy deps
* update otel deps
* implement template in types + update resource meta
* ts types
* dev-2
* dev-3 default template query is include
* Toggle resource is template in resource header
* dev-4 support CopyServer
* gen ts
* style template selector in New Resource menu
* fix new menu show 0
* add template market in omni search bar
* fix some dynamic import behavior
* template badge on dashboard
* dev-5
* standardize interpolation methods with nice api
* core use new interpolation methods
* refactor git usage
* dev-6 refactor interpolation / git methods
* fix pull stack passed replacers
* new types
* remove redundant interpolation for build secret args
* clean up periphery docker client
* dev-7 include ports in container summary, see if they actually come through
* show container ports in container table
* refresh processes without tasks (more efficient)
* dev-8 keep container stats cache, include with ContainerListItem
* gen types
* display more container ports
* dev-9 fix repo clone when repo doesn't exist initially
* Add ports display to more spots
* fix function name
* add Periphery full container stats api, may be used later
* server container stats list
* dev-10
* 1.18.4 release
* Use reset instead of invalidate to fix GetUser spam on token expiry (#618)
---------
Co-authored-by: Jacky Fong <hello@huzky.dev>
* feat: add maintenance window management to suppress alerts during planned activities (#550)
* feat: add scheduled maintenance windows to server configuration
- Add maintenance window configuration to server entities
- Implement maintenance window UI components with data table layout
- Add maintenance tab to server interface
- Suppress alerts during maintenance windows
* chore: enhance maintenance windows with types and permission improvements
- Add chrono dependency to Rust client core for time handling
- Add comprehensive TypeScript types for maintenance windows (MaintenanceWindow, MaintenanceScheduleType, MaintenanceTime, DayOfWeek)
- Improve maintenance config component to use usePermissions hook for better permission handling
- Update package dependencies
* feat: restore alert buffer system to prevent noise
* fix yarn fe
* fix the merge with new alerting changes
* move alert buffer handle out of loop
* nit
* fix server version changes
* unneeded buffer clear
---------
Co-authored-by: mbecker20 <becker.maxh@gmail.com>
* set version 1.18.2
* failed OIDC provider init doesn't cause panic, just error log
* OIDC: use userinfo endpoint to get preffered username for user.
* add profile to scopes and account for username already taken
* search through server docker lists
* move maintenance stuff
* refactor maintenance schedules to have more toml compatible structure
* daily schedule type use struct
* add timezone to core info response
* frontend can build with new maintenance types
* Action monaco expose KomodoClient to init another client
* flatten out the nested enum
* update maintenance schedule types
* dev-3
* implement maintenance windows on alerters
* dev-4
* add IanaTimezone enum
* typeshare timezone enum
* maintenance modes almost done on servers AND alerters
* maintenance schedules working
* remove mention of migrator
* Procedure / Action schedule timezone selector
* improve timezone selector to display configure core TZ
* dev-5
* refetch core version
* add version to server list item info
* add periphery version in server table
* dev-6
* capitalize Unknown server status in cache
* handle unknown version case
* set server table sizes
* default resource_poll_interval 1-hr
* ensure parent folder exists before cloning
* document Build Attach permission
* git actions return absolute path
* stack linked repos
* resource toml replace linked_repo id with name
* validate incoming linked repo
* add linked repo to stack list item info
* stack list item info resolved linked repo information
* configure linked repo stack
* to repo links
* dev-7
* sync: replace linked repo with name for execute compare
* obscure provider tokens in table view
* clean up stack write w/ refactor
* Resource Sync / Build start support Repo attach
* add stack clone path config
* Builds + syncs can link to repos
* dev-9
* update ts
* fix linked repo not included in resource sync list item info
* add linked repo UI for builds / syncs
* fix commit linked repo sync
* include linked repo syncs
* correct Sync / Build config mode
* dev-12 fix resource sync inclusion w/ linked_repo
* remove unneed sync commit todo!()
* fix other config.repo.is_empty issues
* replace ids in all to toml exports
* Ensure git pull before commit for linear history, add to update logs
* fix fe for linked repo cases
* consolidate linked repo config component
* fix resource sync commit behavior
* dev 17
* Build uses Pull or Clone api to setup build source
* capitalize Clone Repo stage
* mount PullOrCloneRepo
* dev-19
* Expand supported container names and also avoid unnecessary name formatting
* dev-20
* add periphery /terminal/execute/container api
* periphery client execute_container_exec method
* implement execute container, deployment, stack exec
* gen types
* execute container exec method
* clean up client / fix fe
* enumerate exec ts methods for each resource type
* fix and gen ts client
* fix FE use connect_exec
* add url log when terminal ws fail to connect
* ts client server allow terminal.js
* FE preload terminal.js / .d.ts
* dev-23 fix stack terminal fail to connect when not explicitly setting container name
* update docs on attach perms
* 1.18.2
---------
Co-authored-by: Samuel Cardoso <R3D2@users.noreply.github.com>
* 1.18.1
* improve stack header / all resource links
* disable build config selector
* clean up deployment header
* update build header
* builder header
* update repo header
* start adding repo links from api
* implement list item repo link
* clean up fe
* gen client
* repo links across the board
* include state tracking buffer, so alerts are only triggered by consecutive out of bounds conditions
* add runnables-cli link in runfile
* improve frontend first load time through some code splitting
* add services count to stack header
* fix repo on pull
* Add dedicated Deploying state to Deployments and Stacks
* move predeploy script before compose config (#584)
* Periphery / core version mismatch check / red text
* move builders / alerts out of sidebar, into settings
* remove force push
* list schedules api
* dev-1
* actually dev-3
* fix action
* filter none procedures
* fix schedule api
* dev-5
* basic schedules page
* prog on schedule page
* simplify schedule
* use name to sort target
* add resource tags to schedule
* Schedule page working
* dev-6
* remove schedule table type column
* reorder schedule table
* force confirm dialogs for delete, even if disabled in config
* 1.18.1
---------
Co-authored-by: undaunt <31376520+undaunt@users.noreply.github.com>
* API support new calling syntax
* finish /{variant} api to improve network logs in browser console
* update roadmap
* configure the shell used to start the pty
* start on ExecuteTerminal api
* Rename resources less hidden - click on name in header
* update deps
* execute terminal
* BatchPullStack
* add Types import to Actions, and don't stringify the error
* add --reload for cached deps
* type execute terminal response as AsyncIterable
* execute terminal client api
* KOMODO_EXIT_CODE
* Early exit without code
* action configurable deno dep reload
* remove ServerTemplate resource
* kept disabled
* rework exec terminal command wrapper
* debug: print lines in start sentinel loop
* edit debug / remove ref
* echo
* line compare
* log lengths
* use printf again
* check char compare
* leading \n
* works with leading \n
* extra \n after START_OF_OUTPUT
* add variables / secrets finders to ui defined stacks / builds
* isolate post-db startup procedures
* clean up server templates
* disable websocket reconnect from core config
* change periphery ssl enabled to default to true
* git provider selector config pass through disable to http/s button
* disable terminals while allowing container exec
* disable_container_exec in default config
* update ws reconnect implementation
* Don't show delete tag non admin and non owner
* 1.17.5 complete
* interpolate into slack / discord url
* fix js client docs
* js client should be type: module
* click table tags to toggle tag filter
* git token helper early return when empty provider
* reorder Stack fields
* action support interpolation doc
* Fix for the {account} login fails when the account name contains '$' (#385)
* GetDeploymentsSummary (#386)
* added GetDockerContainersSummary endpoint in rust api
* typescript stuff
* more autogenned typescript stuff
* fixed comments to be in line with actual behaviour
* fixed ReadResponse for GetDockerContainersSummary
* I64 -> u32 for response types
* more accurate error context
* backend for build files on host / ui defined
* core api supports non repo based build
* Ntfy as Alerter (#404)
* add ntfy alerter
* add ntfy alerter
* add ntfy alerter
---------
Co-authored-by: GFXSpeed <github@schafhaupt.com>
* Improve docs around running periphery in a container (#402)
* Add ports that need to be exposed if periphery is remote from core
* Spelling: overide -> override
* Add info about using a custom config file when running periphery in docker
* clean up ntfy alerter
* clean up ResourceSyncConfig
* update build cache after create / update
* refresh stack cache log
* Build UI Defined / file on host frontend
* update clap + rustls
* don't cleanup build files
* clean up dockerfile full path
* update BuildListItemInfo + UI table
* add Other Resources page
* add 5 second ws reconnection timeout
* Make listener address configurable & Add support for IPv6 (#405)
* Make listener address configurable
* Make listener address configurable for periphery
* rename listener_address -> bind_ip
---------
Co-authored-by: Jacky Fong <hello@huzky.dev>
Co-authored-by: Alex Shore <kntrllr@gmail.com>
Co-authored-by: Niklas <108990063+GFXSpeed@users.noreply.github.com>
Co-authored-by: GFXSpeed <github@schafhaupt.com>
Co-authored-by: theRAAPster <theraapster@gmail.com>
Co-authored-by: Daniel Vos <45820840+vosdev@users.noreply.github.com>
* resolver v3
add new ec2 instance types
clean up testing config
document the libraries a bit
clean up main
update sysinfo and otel
update client resolver 3.0
resolver v3 prog
clean up gitignore
implement periphery resolver v3
clean up
core read api v3
more prog
execute api
missing apis
compiling
1.16.13
work on more granular traits
prog on crud
* fmt
* format
* resource2 not really a benefit
* axum to 0.8
* bump aws deps
* just make it 1.17.0
* clean up cors
* the komodo env file should be highest priority over additional files
* add entities / message for test alerter
* test alert implementation
* rust 1.84.0
* axum update :param to {param} syntax
* fix last axum updates
* Add test alerter button
* higher quality / colored icons
* komodo-logo
* simplify network stats
* rename Test Alerter button
* escape incoming sync backslashes (BREAKING)
* clean up rust client websocket subscription
* finish oidc comment
* show update available stack table
* update available deployment table
* feature: use the repo path instead of name in GetLatestCommit (#282)
* Update repo path handling in commit fetching
- Changed `name` to `path` for repository identification.
- Updated cache update function to use the new path field.
- Improved error message for non-directory repo paths.
* feat: use optional name and path in GetLatestCommit
* review: don't use optional for name
* review: use helper
* review: remove redundant to_string()
* 1.17.0-dev
* feature: add post_deploy command (#288)
* feature: add post_deploy command
* review: do not run post_deploy if deploy failed
* feature: interpolate secrets in custom alerter (#289)
* feature: interpolate secrets in custom alerter
* fix rust warning
* review: sanitize errors
* review: sanitize error message
* Remove .git from remote_url (#299)
Remove .git from remote_url
Co-authored-by: Deon Marshall <dmarshall@ccp.com.au>
* mbecker20 -> moghtech
* remove example from cargo toml workspace
* dev-1
* fix login screen logo
* more legible favicon
* fix new compose images
* docs new organization
* typescript subscribe_to_update_websocket
* add donate button docsite
* add config save button in desktop sidebar navigator
* add save button to config bottom
* feature: allow docker image text to overflow in table (#301)
* feature: allow docker image text to overflow in table
* review: use break-words
* wip: revert line break in css file
* feature: update devcontainer node release
* improve First Login docs
* FIx PullStack re #302 and record docker compose config on stack deploy
* requery alerts more often
* improve update indicator style and also put on home screen
* Add all services stack log
* 1.17.0-dev-2
* fix api name chnage
* choose which stack services to include in logs
* feature: improve tables quick actions on mobile (#312)
* feature: improve tables quick actions on mobile
* review: fix gap4
* review: use flex-wrap
* improve pull to git init on existing folder without .git
* Fix unclear ComposePull log re #244
* use komodo_client.subscribe_to_update_websocket, and click indicator to reconnect
* dev-3
* ServerTemplate description
* improve WriteComposeContentsToHost instrument fields
* give server stat charts labels
* filters wrap
* show provider usernames from config file
* Stack: Fix git repo new compose file initialization
* init sync file new repo
* set branch on git init folder
* ResourceSync: pending view toggle between "Execute" vs "Commit" sync direction
* Improve resource sync Execute / Pending view selector
* standardize running commands with interpolation / output sanitizations
* fix all clippy lints
* fix rand
* lock certain users username / password, prevent demo creds from being changed.
* revert to login screen whenever the call to check login fails
* ResourceSync state resolution refinement
* make sure parent directories exist whenever writing files
* don't prune images if server not enabled
* update most deps
* update openidconnect dependency, and use reqwest rustls-tls-native-roots
* dev-4
* resource sync only add escaping on toml between the """
* Stacks executions take list of services -- Auto update only redeploys services with update
* auto update all service deploy option
* dev-5 fix the stack service executions
* clean up service_args
* rust 1.85
* store sync edits on localstorage
* stack edits on localstorage and show last deployed config
* add yarn install to runfile
* Fix actions when core on https
* add update_available query parameter to filter for only stacks /deployments with available update
* rust 2024 and fmt
* rename test.compose.yaml to dev.compose.yaml, and update runfile
* update .devcontainer / dev docs for updated runfile
* use png in topbar logo, svg quality sometimes bad
* OIDC: Support PKCE auth (secret optional)
* update docs on OIDC and client secret
* cycle the oidc client on interval to ensure up to date JWKs
* add KOMODO_LOCK_LOGIN_CREDENTIALS_FOR in config doc
* update deps
* resource sync toggle resource / variable / user group inclusion independantly
* use jsonwebtoken
* improve variable value table overflow
* colored tags
* fix sync summary count ok
* default new tag colors to grey
* soften tag opacity a bit
* Update config.tsx (#358)
* isolate stacks / deployments with pending updates
* update some deps
* use Tooltip component instead of HoverCard for mobile compatibility
* batch Build builds
* link to typescript client in the intro
* add link to main docs from client docs
* doc tweaks
* use moghtech/komodo-core and moghtech/komodo-periphery as images
* remove unnecessary explicit network
* periphery.compose.yaml
* clean up periphery compose
* add link to config
* update periphery container compose config
* rust 1.85.1
* update sync docs
* 1.17.0
---------
Co-authored-by: unsync <1211591+unsync@users.noreply.github.com>
Co-authored-by: Deon Marshall <dmarshall@ccp.com.au>
Co-authored-by: komodo <komodo@komo.do>
Co-authored-by: wlatic <jamesoh@gmail.com>
* Add network io stats
Add network usage graph and current status
Change network graphs to use network interface from drop down menu
Adjust the type to be able to get general network stats for the general
UI view
Working setup with a working builder
remove changes to these dockerfile
remove lock changes
* change network hashmap to Vector
* adjust all the network_usage_interface to be a vector rather than a hash map
* PR requested changes applied
* Change net_ingress_bytes and egress to network_ingress_bytes egress respectively
* final gen-client types
---------
Co-authored-by: mbecker20 <becker.maxh@gmail.com>
* inc version
* Komodo interp in ui compose file
* fix auto update when image doesn't specify tag by defaulting to latest
* Pull image buttons don't need safety dialog
* WIP crosscompile
* rename
* entrypoint
* fix copy
* remove example/* from workspace
* add targets
* multiarch pkg config
* use specific COPY
* update deps
* multiarch build command
* pre compile deps
* cross compile
* enable-linger
* remove spammed log when server doesn't have docker
* add multiarch.Dockerfile
* fix casing
* fix tag
* try not let COPY fail
* try
* ARG TARGETPLATFORM
* use /app for consistency
* try
* delete cross-compile approach
* add multiarch core build
* multiarch Deno
* single arch multi arch
* typeshare cli note
* new typeshare
* remove note about aarch64 image
* test configs
* fix config file headers
* binaries dockerfile
* update cargo build
* docs
* simple
* just simple
* use -p
* add configurable binaries tag
* add multi-arch
* allow copy to fail
* fix binary paths
* frontend Dockerfiel
* use dedicated static frontend build
* auto retry getting instance state from aws
* retry 5 times
* cleanup
* simplify binary build
* try alpine and musl
* install alpine deps
* back to debian, try rustls
* move fully to rustls
* single arch builds using single binary image
* default IMAGE_TAG
* cleanup
* try caching deps
* single arch add frontend build
* rustls::crypto::ring::default_provider()
* back to simple
* comment dockerfile
* add select options prop, render checkboxes if present
* add allowSelectedIf to enable / disable rows where necessary
* rename allowSelectIf to isSelectable, allow false as global disable, disable checkboxes when not allowed
* rename isSelectable to disableRow (it works the oppsite way lol)
* selected resources hook, start deployment batch execute component
* add deployment group actions
* add deployment group actions
* add default (empty) group actions for other resources
* fix checkbox header styles
* explicitly check if disableRow is passed (this prop is cursed)
* don't disable row selection for deployments table
* don't need id for groupactions
* add group actions to resources page
* fix row checkbox (prop not cursed, i dumb)
* re-implement group action list using dropdown menu
* only make group actions clickable when at least one row selected
* add loading indicator
* gap betwen new resource and group actions
* refactor group actions
* remove "Batch" from action labels
* add group actions for relevant resources
* fix hardcode
* add selectOptions to relevant tables
* select by name not id
* expect selected to be names
* add note re selection state init for future reference
* multi select working nicely for all resources
* configure server health check timeout
* config message
* refresh processes remove dead processes
* simplify the build args
* default timeout seconds 3
---------
Co-authored-by: kv <karamvir.singh98@gmail.com>
* BatchDestroyDeployment
* periphery image pull api
* Add Pull apis
* Add PullStack / PullDeployment
* improve init deploy from container
* stacks + deployments update_available source
* Fix deploy / destroy stack service
* updates available indicator
* add poll for updates and auto update options
* use interval to handle waiting between resource refresh
* stack auto update deploy whole stack
* format
* clean up the docs
* update available alerts
* update alerting format
* fix most clippy