All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
-
cds: fix cds upgrade safety net for stalled upgrades
-
the whatwg-url override did not reach users, because it only works locally. this should be fixed by using shrinkwrap.
-
node v16 is no longer supported
-
hdi: remove legacy instance manager code
-
cds: remove legacy cds-mtx code
-
reg: remove registry job command
-
srv: remove server info command
- marked
--server-start-debugger
as not dangerous
-
established baseline test coverage
-
hdi: list relations also gets the
--json
flag
-
override whatwg-url to v14. this fixes a
punycode
incompatibility warning when using the commonjs variant of node-fetch with node v21+. -
fix some internal context call queuing under parallel execution
-
fix console output for
--server-start-debugger
and--version
-
reg/cds/hdi: the list and long list command gets a
--json
flag to produce json output (fixes #86) -
uaa: all uaa commands get a
--json
flag to produce json output -
code scanning with codeQL
-
added node v22 to voters
-
better separation for test request-replay recording and playback
-
hdi: fixed logic for
ready
list column, such that it's false if either instance or binding is not ready -
srv: better resilience for apps with no buildpack
- reg: new
--only-stale
and--only-failed
filter options for most registry commands. stale here means that the last changed on day is older than the invocation day.
-
reg:
--registry-update-all
is more resilient for failing calls -
better error message for users with access restrictions due to new btp space supporter role
- cds: upgrade now fails with a non-zero error code if an underlying task fails
- reg: registry service calls now happen concurrently where appropriate similar to hdi and cds interactions.
-
added environment variables to control polling frequency for interactions:
environment variable effect MTX_CDS_FREQUENCY
change polling frequency milliseconds for server async job calls (default is 15000) MTX_REG_FREQUENCY
change polling frequency milliseconds for service async job calls (default is 15000)
- reg: better error handling for registry updates
- reg: fixed a paging bug where most registry commands had an infinite loop if more than 200 tenants are handled. (reported by @cgaillydetaurines)
- cds: tenant upgrade now logs progress of individual tasks (
@sap/cds-mtxs
uses one task per tenant) for every poll. the logs will look something like:GET https://my-server-mtx.cfapps.sap.hana.ondemand.com/-/cds/jobs/pollJob(ID='d2f560dc-542c-4091-a632-919c941210b4') 200 OK (163ms) job d2f560dc-542c-4091-a632-919c941210b4 is RUNNING with tasks queued/running: 5/ 5 | failed/finished: 0/ 0 GET https://my-server-mtx.cfapps.sap.hana.ondemand.com/-/cds/jobs/pollJob(ID='d2f560dc-542c-4091-a632-919c941210b4') 200 OK (98ms) job d2f560dc-542c-4091-a632-919c941210b4 is RUNNING with tasks queued/running: 4/ 5 | failed/finished: 0/ 1 GET https://my-server-mtx.cfapps.sap.hana.ondemand.com/-/cds/jobs/pollJob(ID='d2f560dc-542c-4091-a632-919c941210b4') 200 OK (98ms) job d2f560dc-542c-4091-a632-919c941210b4 is RUNNING with tasks queued/running: 1/ 4 | failed/finished: 0/ 5 ...
- cds: tenant upgrade now tracks that task progress is still happening. if no progress is detected for 30 minutes, it will show the final status for each tenant and fail.
- uaa: some arguments can be passed in via environment variable instead of the commandline. this behavior is expected
by Jenkins and Github Actions. for example, the following is now possible:
UAA_USERNAME=user UAA_PASSWORD=pass mtx --uaa-user
- sensitive input arguments are now masked in the running console output
- removed npm
postinstall
script
- hdi: all accesses to service instances and bindings now filter for the service-plan
hdi-shared
. this change allows the service-manager to be used with other services, e.g.redis-cache
, alongside HANA containers.
- uaa:
uaasc
,uaasp
,uaasu
error handling and message with passcode url was improved.
- reg: improved
regl
and--registry-update
support for instances withservice
plan. (proposal and provisioning support by @andre68723)
- hdi:
--hdi-migrate-all
command is removed. Instance manager has been deprecated for a while, so migrations to service-manager have happened by now.
- uaa:
uaas --uaa-service
command has been renamed touaasc --uaa-service-client
. This fits better with the pattern of new commands.
-
uaa: new flexible commands, so that either the regular server or a trusted services can be accessed as a technical client, as a user with passcode, or as a user with username and password. (fixes #62 by @soccermax)
uaac --uaa-client [TENANT] obtain uaa token for generic client uaap --uaa-passcode PASSCODE [TENANT] obtain uaa token for one-time passcode uaau --uaa-user USERNAME PASSWORD [TENANT] obtain uaa token for username password uaasc --uaa-service-client SERVICE [TENANT] obtain service token for generic client uaasp --uaa-service-passcode SERVICE PASSCODE [TENANT] obtain service token for one-time passcode uaasu --uaa-service-user SERVICE USERNAME PASSWORD [TENANT] obtain service token for username password
- uaa: fix error with recommended passcode url when credential-type x509 is used. (fixes #59)
- cds: onboard now supports arbitrary subscription metadata https://cap-js-community.github.io/mtx-tool/cap-multitenancy/#onboard-tenant
- srv: new functionality to dump certificates from app server (pr #53) contributed by @kkoile
- srv: environment dump now exports VCAP_APPLICATION (pr #55) contributed by @kkoile
-
cds: added missing timestamp functionality (fixes #46)
-
cds,hdi: allow users to control request concurrency with env variables
MTX_CDS_CONCURRENCY
,MTX_HDI_CONCURRENCY
- cds,hdi: changed default request concurrency from 5 to 10
-
add response time to all logged requests
-
reg: enable access for registry instances with
service
plan
- srv: fix debug command for case where uaa is not configured
- reg: optional flag to skip unchanged dependencies for updates (fixes #38)
- out of the box support for deploy with confidence "uuid-versioned" app suffixes (fixes #35)
-
cds: auto undeploy for mtxs (#34)
-
hdi: allow hdi tenantIds to contain forward slash
-
uaa: make uaa service token work with user provided services
- reg: enable update subscribe apps' url (fixes #25) contributed by @jiangxin0503
-
homogenize single and multi tenant registry calls
-
change function signatures to avoid null parameters
-
reg: common enum for registry response states
-
respect uaa-token expiry (fixes #22)
-
code cleanup
-
documented
--force
arg for scripts (relates to #20) -
reg:
--registry-update-all
now retries tenants with previously failed updates
- uaa: expose uaa userinfo (fixes #13)
-
hdi: fix access problems for hdi containers with no associated tenant
-
srv: allow server-start-debugger to pass an app instance
- first external release
- cds: mtxs cds-upgrade error did not cause a non-zero error code
- cds: support cds-mtxs
-
better pagination for cf requests
-
reg: support enforced pagination in saas-registry api
-
hdi: new command
--hdi-list-relations
to show mapping of service-manager containers to their bindings. makes it easy to see if some containers have too many or no binding, or conversely, if some bindings have no container. -
hdi: new command
--hdi-repair-bindings
to harmonize service-manager containers and bindings, so they are 1-to-1
-
hdi: add service manager instance information to hdi long list
-
hdi: allow
--hdi-rebind-*
to create new bindings with custom parameters
-
hdi: rebind all tenants with one command
-
hdi: hdi list instances and bindings separately
- rollback required engine to node v14 npm v6.14. Note: support for node v14 will end shortly after the official end of life 2023-04-30.
- upgrade required engines to node v16 and npm v8
-
cds: fixes cds-upgrade-all bug where number of tenants is below number of app instances
-
cds: update docs with tenant upgrade scaling info
- cds: cds-upgrade-all is now spreads the load across app instances
-
rework internal error handling
-
reorganize some internal reuse functions
- hana cloud cannot tunnel warning for combination of
hditt
and port 443
- various dedicated paas commands for reg/cds/hdi areas have been removed. provider subaccount should not be treated specially here.
-
uaa: combined logically similar commands:
uaap
anduaas
becomeuaac
,uaac
anduaasc
becomeuaap
-
srv:
srvda
app_instance_id argument is now optional and defaults to zero
-
regl
/regll
,cdsl
/cdsll
,hdil
/hdill
all allow filters -
uaa:
uaac
can handle both subdomain and tenant id -
updates for tests and documentation related to new command line interfaces
-
use cf oauth-token instead of cf curl for better testability
-
testing reg/cds/hdi with nock and anonymize playback files
-
better status reporting for failed requests
-
reg: make registry tenant update serial
-
uaa: allow uaa code to handle tenantId
- rename repo to btp-tools-mtx
- cds: switch to manual control of auto undeploy
- cds: handle some tenant upgrade errors better
- uaa: allow 32-char passcode length
- hdi: bugfix in
hditp
/hditt
where tunnel is not opened correctly
-
hdi: work properly with multiple service-bindings to a single (hdi) service-instance
-
resilience with respect to missing cfRouteDomain
-
support for x509 enabled uaa bindings
-
allow readonly commands for apps with
-live
suffix
- hdi: separate hdi tunnel information into runtime and design time user
-
better error handling in cf curl
-
hdi: missing await for delete hdi tenant with service manager
-
change order in cf target log to api/org/space
-
cds: write cds upgrade buildlog
-
hdi: expect service-manager first
-
hdi: change order in hdil so that tenant_id is leading and gets sorted
-
hdi: enhance hdil with host information for multi-db environments
-
srv: bugfix for --server-debug-app
- support for blue-green projects
-
switch to minimal engine node 12 for eslint 8
-
hdi: new command
--hdi-migrate-all
to migrate hdi containers from instance-manager to service-manager
- hdi: fix tablelist in
hdit*
-
reg: new registry-update-all command
-
srv: new server-debug-app command
-
allow
--force
flag to override danger guard
-
reg: add global account id to regl
-
tablelist with row numbers by default
- add cds-onboard-tenant
- proper handling when
err.message
is undefined
- server start debugger feature
-
uaa tests
-
tablelist handles sorting on columns where values are undefined
-
allow uaa service-plan broker
-
registry-list and hdi-list with optional timestamps (new
--time
flag)
-
show cf target with org/space/api before danger-guard
-
more user input validation for pass arguments and flag arguments
-
extend tests with pass argument consistency validation
- hdi: can now rebind hdi-container for credential rotation
- documentation for service manager support
-
reg: more relevant information extracted for regl
-
bugfix for uaad
- hdi: service-manager support
- uaa: more resilient way to get service tokens
- moved repo to cds-community
- uaa: added saas service token feature
- hdi: automatically use next free sid port for hdi tunnel
- reg: added registry update dependencies
-
reg: rewrote registry offboard subscription for skipping multiple apps
-
spawned subprocesses get cleaned up on SIGINT/SIGTERM
-
better handling of the case when an app has no route
-
better text for hidden passwords
- fix regression for buildpack location in CF V3 API
- switch to CAPI v3 https://v3-apidocs.cloudfoundry.org/version/3.91.0/
- add app-version check to cache
- cds: second pass on error-handling for cds-upgrade
-
mark long-list commands as uncommon
-
cds: fix error-handling during cds upgrade polling
- add flagArgs like
--decode
(foruaa
) and--reveal
(forhdi
)
-
passwords are now confidential by default
-
decrease cache gap to 12 hours to enable a quicker discovery for changes
-
show partial outputs for sub-exec failures
- cds: more resilient upgrade-tenant
- cds: failing upgrade-tenant should cause a non-zero error code
- srv: add command to extract env information
-
cds: increase polling time to 20sec
-
cds: fix instance for upgrades and use capitalized headers consistently
- srv: add app-instance-index to openTunnel
-
srv: get debugPort through /info and add instance information
-
srv: better handling of dynamic buildpacks from Github
-
srv: better handling for openTunnel without passing appInstanceIndex
- initial release