Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v1.134.0 - release → staging #11497

Merged
merged 111 commits into from
Jan 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
8485b52
refactor: [M3-8954] - Update `@hookform/resolvers` to latest (#11349)
bnussman-akamai Dec 5, 2024
3d62d31
fix: [M3-8912] - Create support ticket for buckets created through le…
harsh-akamai Dec 6, 2024
82c8990
test: [M3-8758]- Fixed `delete-volume.spec.ts` flaky test (#11365)
harsh-akamai Dec 6, 2024
04f241d
added: [M3-6989] - `aria-describedby` to TextField with helper text (…
abailly-akamai Dec 6, 2024
5ac188d
tech-story: [M3-8940] - Dev Tools fixes and improvements (#11328)
abailly-akamai Dec 6, 2024
dcf380b
refactor: Use Query Key Factor for Object ACL and Fix Incorrect api-v…
bnussman-akamai Dec 6, 2024
1f89aba
build(deps): bump @eslint/plugin-kit from 0.2.0 to 0.2.4 (#11373)
dependabot[bot] Dec 6, 2024
1072d54
refactor: [M3-8964] - Remove `reselect` dependency (#11364)
bnussman-akamai Dec 6, 2024
92fe999
upcoming: [DI-20929] - Added applied filters view in CloudPulse (#11354)
nikhagra-akamai Dec 9, 2024
85d62d3
upcoming: [M3-8869] - Update types for NodeBalancer UDP support (#11321)
bnussman-akamai Dec 9, 2024
906e061
tests: [M3-8656] - Mock LKE creation flow + APL coverage (#11347)
abailly-akamai Dec 10, 2024
57b884e
fix: [M3-8796] - Disallow word-break in billing contact info (#11379)
hasyed-akamai Dec 10, 2024
652b2aa
upcoming: [DI-22217] - Added the Alert Listing page with Alerting Tab…
santoshp210-akamai Dec 10, 2024
ac15267
refactor: [M3-8783] - Migrate /volumes to Tanstack Router (#11154)
abailly-akamai Dec 10, 2024
81e55d5
fix: [M3-8538] - Incorrect Commands in Linode CLI Modal (#11303)
carrillo-erik Dec 10, 2024
964842c
feat: [UIE-8136] - IAM RBAC: add new users table component (part 1) (…
aaleksee-akamai Dec 10, 2024
d0fb914
test: [M3-8693] - Cypress tests for Credit Card Expired banner (#11383)
hkhalil-akamai Dec 10, 2024
7abce3b
Merge branch 'master' into develop
hkhalil-akamai Dec 10, 2024
681acc6
test: Fix and clean up `smoke-billing-activity.spec.ts` and `Database…
bnussman-akamai Dec 10, 2024
0bd360b
upcoming: [DI-20595] - ACLP Supported regions per service type (#11382)
ankita-akamai Dec 11, 2024
4afffcb
feat: [M3-8676] - Provide Customer Notice for OS Distro Nearing EOL/E…
harsh-akamai Dec 11, 2024
61987af
upcoming: [M3-8848] - Update Kubernetes version Autocomplete to filte…
mjac0bs Dec 11, 2024
cca950f
refactor: [M3-8877] - Refactor VPC Create to use `react-hook-form` (#…
coliu-akamai Dec 11, 2024
977e32c
fix: [M3-8975] - Object Storage object uploader spinner spinning back…
harsh-akamai Dec 11, 2024
3eba173
fix: [M3-8506] - Misplaced `errorGroup` prop causing console error (#…
pmakode-akamai Dec 12, 2024
abf05ca
refactor: [M3-8981] - User Preferences optimization with selector pat…
bnussman-akamai Dec 12, 2024
cf84950
refactor: [M3-8986] - Refactor VPCEditDrawer and SubnetEditDrawer to …
coliu-akamai Dec 12, 2024
15992df
fix: [UIE-8194] dbaas maintenance pending updates state should displa…
smans-akamai Dec 12, 2024
4f19394
change: [M3-8928] - Switch from v4beta to v4 `account` endpoint for L…
mjac0bs Dec 12, 2024
518d85d
feat: [M3-8611]- New DatePicker Component (#11151)
cpathipa Dec 12, 2024
bfbd822
test: [M3-8948] Added cypress component test for firewall inbound and…
subsingh-akamai Dec 13, 2024
0fd6108
test: [M3-8760] - Improve stability of Linode end-to-end tests (#11350)
jdamore-linode Dec 13, 2024
f1e1505
M3-8974: Fix account login tests when using non-Prod login environmen…
jdamore-linode Dec 13, 2024
6e403e9
fix: [UIE-8338] dbaas IP validation should display updated error mess…
smans-akamai Dec 13, 2024
fcb4ec3
fix: [UIE-8228] - Database Resize: text update (#11406)
mpolotsk-akamai Dec 13, 2024
270c1e3
upcoming: [DI-22130] - Alert listing action menu and Alert Detail lan…
venkymano-akamai Dec 13, 2024
6bb0a17
change: [UIE-8194] DBaaS Settings maintenance pending updates tooltip…
smans-akamai Dec 13, 2024
c8fa6b3
test: [M3-8951] - Cypress component tests for firewall rules drag and…
pmakode-akamai Dec 16, 2024
456b923
feat: [UIE-8138] - add new no assigned roles component (#11401)
aaleksee-akamai Dec 16, 2024
b703190
feat: [M3-8985] - High performance volume indicator (#11400)
dchyrva-akamai Dec 16, 2024
7cd7090
docs: [M3-9010] - `useEffect` Best Practices (#11410)
jaalah-akamai Dec 16, 2024
90761e7
refactor: [M3-8917] - Replace one-off hardcoded color values with col…
hasyed-akamai Dec 17, 2024
d99b334
fix: [M3-8196] - Fix Linode Edit Config warning message when initiall…
coliu-akamai Dec 17, 2024
3d944d2
[M3-8991 + M3-6911] - New Select Component + Managed Replacement (#11…
abailly-akamai Dec 17, 2024
f1e62fc
upcoming: [DI-22184] - Added Metric Criteria, Metric components (#11392)
santoshp210-akamai Dec 17, 2024
d5fb831
upcoming: [M3-8960] - Update Kubernetes version upgrade components fo…
mjac0bs Dec 17, 2024
9f05357
feat: [M3-8855] - Surface Node Pool Tags (#11368)
hana-akamai Dec 17, 2024
5102218
refactor: Treat `scripts` as a yarn workspace (#11420)
bnussman-akamai Dec 17, 2024
226c3cb
fix: [M3-7528] - Account Cancellation Survey Button Color Issues (#11…
carrillo-erik Dec 17, 2024
f74d3f6
change: [M3-8742] - Update Pendo URL with CNAME (#11427)
mjac0bs Dec 17, 2024
bb4c965
upcoming: [M3-8841] - Display LKE-E pricing in checkout bar (#11419)
hana-akamai Dec 17, 2024
b494346
refactor: [M3-8637] - Make `EditableText` UI component pure (#11333)
bnussman-akamai Dec 18, 2024
43f676d
change: [DI-22390] - Enhanced monitor page for contextual view (#11388)
nikhagra-akamai Dec 18, 2024
b2473e6
fix: [M3-8905] - Change document title from address to appropriate ke…
hasyed-akamai Dec 18, 2024
5469160
test: [M3-8608] - Cypress test for restricted user Image non-empty la…
hasyed-akamai Dec 18, 2024
8ff2562
feat: [M3-8177] - Add `MultipleIPInput` Story (#11389)
hasyed-akamai Dec 18, 2024
e3fd243
fix: [UIE-8342] DBaaS resize used field should show N/A when property…
smans-akamai Dec 18, 2024
26adcac
tech-story: [M3-8784] - Tanstack routing for Domains (#11418)
abailly-akamai Dec 18, 2024
523ae11
fix: [M3-8970] - Duplicate VPCs fetch on Linode Create (#11409)
bnussman-akamai Dec 18, 2024
b4181b3
tech-story: [M3-6904] - Replace react-select instances in /Users with…
abailly-akamai Dec 18, 2024
fff1b6c
fix: CloudPulse metric definition types (#11433)
bnussman-akamai Dec 18, 2024
2867d82
fix: [M3-9032] - ARIA label of action menu in Domains Landing table r…
pmakode-akamai Dec 19, 2024
cbc317e
test: [M3-8864] - Cypress tests to validate errors in Linode Create B…
pmakode-akamai Dec 19, 2024
31bcae2
fix: [M3-8451] - List events in event landing page in chronological o…
harsh-akamai Dec 19, 2024
174868f
test: [M3-8768] - Cypress test flake: Rebuild Linode (#11390)
AzureLatte Dec 19, 2024
705122a
test: [M3-8979] - Fix lke-create test by using a different mock regio…
AzureLatte Dec 19, 2024
a2ae501
Merge remote-tracking branch 'origin/master' into develop
jaalah Dec 19, 2024
58d72d8
fix: [M3-9021] - Various bugs in Managed tables (#11431)
mjac0bs Dec 19, 2024
9c2d7b8
feat: [UIE-8137] - add new user details component (#11397)
aaleksee-akamai Dec 19, 2024
0b0fa66
test: [M3-8863, M3-9040] - Cypress test to validate aria label of Lin…
pmakode-akamai Dec 20, 2024
1f0844b
Merge pull request #11451 from linode/staging
bnussman-akamai Dec 20, 2024
2810a5f
Merge branch 'master' into develop
bnussman Dec 20, 2024
ab2943b
change: [M3-9041] - Remove `Images are not encrypted` warning (#11443)
bnussman-akamai Dec 22, 2024
8cea97c
test: [M3-9040] - Unit tests to validate aria-labels of Action Menu f…
pmakode-akamai Dec 23, 2024
2e89ecc
fix: [M3-9049] - Resolve bucket size discrepancy in CM (#11460)
hasyed-akamai Dec 26, 2024
1fd49e8
refactor: [M3-8981] - Use new preferences selector pattern in more pl…
bnussman-akamai Jan 2, 2025
efc9f2b
fix: [UIE-8350] - IAM RBAC: Fix Invalid routes are accessible (#11436)
aaleksee-akamai Jan 2, 2025
6368f20
upcoming: [DI-21812] - ACLP unit tests for widget components (#11464)
ankita-akamai Jan 2, 2025
260903f
test: [M3-9035] - Reduce flakiness in `lke-update` pool tag test (#11…
jdamore-linode Jan 2, 2025
3a93d2a
fix: [M3-7706, 9005] - Set VPC interface as primary when creating a L…
coliu-akamai Jan 2, 2025
de24b40
upcoming: [M3-8839] - Designate LKE-E clusters with 'Enterprise' chip…
mjac0bs Jan 2, 2025
69afae1
fix: [M3-8506] - `RegionHelperText` causing console errors (#11416)
pmakode-akamai Jan 3, 2025
18cfc7e
dep: [M3-8955] - Update react-vnc to 2.0.2 (#11467)
bnussman-akamai Jan 3, 2025
53d2633
upcoming: [DI-22596] - Changes for adding overview section in the ale…
venkymano-akamai Jan 3, 2025
47758c6
upcoming: [DI-20935] - Support for tags filter in CloudPulse (#11457)
ankita-akamai Jan 3, 2025
32bb497
upcoming: [M3-8870] - Begin adding UDP Support for NodeBalancers (#11…
bnussman-akamai Jan 3, 2025
3e74aca
upcoming: [M3-9042] - Update LKE cluster details kube specs for LKE-E…
mjac0bs Jan 6, 2025
7432afd
fix: [M3-9025] - Region validation when switching to LKE-E (#11471)
hana-akamai Jan 6, 2025
3febaa0
test: [M3-8661] - Cypress test to validate CAA record are editable (#…
hasyed-akamai Jan 7, 2025
6f907c2
change: [M3-6546] - Volume drawers and action menu refactored (#11421)
dchyrva-akamai Jan 7, 2025
2e4dabf
test: [M3-8688, M3-9039] - Autocomplete component tests (#11408)
coliu-akamai Jan 7, 2025
47ddb5b
test: [M3-9023] - Add coverage for Kube version upgrades in landing p…
hana-akamai Jan 7, 2025
6992080
test: [M3-8996] - Add test for LKE cluster rename flow (#11482)
jdamore-linode Jan 7, 2025
2562a2f
refactor: [M3-6910] - Replace instances in : Object Storage (#11456)
hasyed-akamai Jan 7, 2025
f818d0b
fix: [PDI-3099] - Enable `Create Token` button if all visible permiss…
ChihweiLHBird Jan 7, 2025
a0e531d
deps: [M3-8782] - Patch cookie version (#11434)
jaalah-akamai Jan 7, 2025
5787534
fix: [M3-9060] - Object Storage `endpoint_type` sorting (#11472)
jaalah-akamai Jan 7, 2025
26e3b83
change: [M3-8957] - Allow Docker registry to be overridden when build…
jdamore-linode Jan 7, 2025
6dc152f
fix: [M3-9024] - Mask sensitive data in Managed and Longview (#11476)
mjac0bs Jan 7, 2025
b47661f
upcoming: [DI-22558] - Added Trigger condition and Dimension Filter c…
santoshp210-akamai Jan 7, 2025
bab026d
test: [M3-9072] - Fix test failures by using Debian 12 for test Linod…
jdamore-linode Jan 8, 2025
caca6dd
tech-story: [M3-9017] - Add MSW crud domains (#11428)
abailly-akamai Jan 8, 2025
2199d1c
fix: [M3-9063] - Display Kubernetes API endpoint for LKE-E cluster (#…
hana-akamai Jan 8, 2025
f3e13c8
change: [M3-9074] - Remove properties tab from Gen2 buckets (#11491)
jaalah-akamai Jan 8, 2025
3511734
upcoming: [M3-9008] Improve Close Account UI (#11469)
jaalah-akamai Jan 8, 2025
e97ff2f
feat: [M3-8936] - Add Date Presets Functionality to Date Picker compo…
cpathipa Jan 8, 2025
047a1bf
Cloud version 1.134.0, API v4 version 0.132.0, Validation version 0.5…
hana-akamai Jan 8, 2025
6d96393
change: [UIE-8228] - Database Resize: disable same size plan (#11481)
mpolotsk-akamai Jan 9, 2025
94b03e6
update changelog from cherry-pick
hana-akamai Jan 9, 2025
91a43d8
test: Fix DateTimeRangePicker unit test failure (#11502)
jdamore-linode Jan 9, 2025
ff82fec
fix: Preferences type_to_confirm being undefined no longer causes but…
jaalah-akamai Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions docs/development-guide/13-coding-standards.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,19 @@ We use [ESLint](https://eslint.org/) to enforce coding and formatting standards.
If you are using VSCode it is **highly** recommended to use the [ESlint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint). The [Prettier extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) is also recommended, as it can be configured to format your code on save.

## React
### useEffect()
`useEffect()` should only be used for handling true side effects - specifically API calls, subscriptions, and DOM mutations that must occur outside React's render cycle. While you may encounter instances where `useEffect()` is used differently throughout our existing codebase, we're actively working to remove those instances. Existing code that does not adhere to the hook's proper use should not be used as precedent for implementing new `useEffect()` instances. All state updates and data transformations should be handled through event handlers and direct state management.

When Not to Use Effects:
- Prop synchronization with state
- Derived state calculations
- Post-render state updates
- Props/state triggers for child components
- Chaining state updates

Reference: https://react.dev/learn/you-might-not-need-an-effect

### useId()
[Several new hooks were introduced with the release of React 18](https://react.dev/blog/2022/03/29/react-v18#new-hooks).

It should be noted that the `useId()` hook is particularly useful for generating unique IDs for accessibility attributes. For this use case, `useId()` is preferred over hardcoding the ID because components may be rendered more than once on a page, but IDs must be unique.
Expand Down
53 changes: 28 additions & 25 deletions docs/tooling/analytics.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,35 @@
# Analytics

## Pendo

Cloud Manager uses [Pendo](https://www.pendo.io/pendo-for-your-customers/) to capture analytics, guide users, and improve the user experience. Pendo is the **preferred** method for collecting analytics, including user events, since it requires no development effort and can be accomplished via the Pendo UI.

To view Pendo dashboards, Cloud Manager developers must follow internal processes to request access.

### Set Up and Initialization

Pendo is configured in [`usePendo.js`](https://github.com/linode/manager/blob/develop/packages/manager/src/hooks/usePendo.ts). This custom hook allows us to initialize the Pendo analytics script when the [App](https://github.com/linode/manager/blob/develop/packages/manager/src/App.tsx#L56) is mounted.

Important notes:

- Pendo is only loaded if a valid `PENDO_API_KEY` is configured as an environment variable. In our development, staging, and production environments, `PENDO_API_KEY` is available at build time. See **Locally Testing Page Views & Custom Events and/or Troubleshooting Pendo** for set up with local environments.
- We load the Pendo agent from the CDN, rather than [self-hosting](https://support.pendo.io/hc/en-us/articles/360038969692-Self-hosting-the-Pendo-agent), and we have configured a [CNAME](https://support.pendo.io/hc/en-us/articles/360043539891-CNAME-for-Pendo).
- We are hashing account and visitor IDs in a way that is consistent with Akamai's standards.
- At initialization, we do string transformation on select URL patterns to **remove sensitive data**. When new URL patterns are added to Cloud Manager, verify that existing transforms remove sensitive data; if not, update the transforms.
- Pendo is currently not using any client-side (cookies or local) storage.
- Pendo makes use of the existing `data-testid` properties, used in our automated testing, for tagging elements. They are more persistent and reliable than CSS properties, which are liable to change.

### Locally Testing Page Views & Custom Events and/or Troubleshooting Pendo

1. Set the `REACT_APP_PENDO_API_KEY` environment variable in `.env`.
2. Use the browser tools Network tab, filter requests by "psp.cloud", and check that successful network requests have been made to load Pendo scripts (also visible in the browser tools Sources tab).
3. In the browser console, type `pendo.validateEnvironment()`.
4. You should see command output in the console, and it should include a hashed `accountId` and hashed `visitorId`. Each page view change or custom event that fires should be visible as a request in the Network tab.
5. If the console does not output the expected ids and instead outputs something like `Cookies are disabled in Pendo config. Is this expected?` in response to the above command, clear app storage with the browser tools. Once redirected back to Login, update the OneTrust cookie settings to enable cookies via "Manage Preferences" in the banner at the bottom of the screen. Log back into Cloud Manager and Pendo should load.

## Adobe Analytics

Cloud Manager uses Adobe Analytics to capture page view and custom event statistics. To view analytics, Cloud Manager developers must follow internal processes to request access to Adobe Analytics dashboards.
Cloud Manager uses Adobe Analytics to capture page view and custom event statistics, although Pendo is the preferred method for collecting this data where possible, as of Q4 2024. To view analytics, Cloud Manager developers must follow internal processes to request access to Adobe Analytics dashboards.

### Writing a Custom Event

Expand Down Expand Up @@ -63,27 +90,3 @@ See the `LinodeCreateForm` form events as an example.
3. In the browser console, type `_satellite.setDebug(true)`.
4. Refresh the page. You should see Adobe debug log output in the console. Each page view change or custom event that fires should be visible in the logs.
5. When viewing dashboards in Adobe Analytics, it may take ~1 hour for analytics data to update. Once this happens, locally fired events will be visible in the dev dashboard.

## Pendo

Cloud Manager uses [Pendo](https://www.pendo.io/pendo-for-your-customers/) to capture analytics, guide users, and improve the user experience. To view Pendo dashboards, Cloud Manager developers must follow internal processes to request access.

### Set Up and Initialization

Pendo is configured in [`usePendo.js`](https://github.com/linode/manager/blob/develop/packages/manager/src/hooks/usePendo.ts). This custom hook allows us to initialize the Pendo analytics script when the [App](https://github.com/linode/manager/blob/develop/packages/manager/src/App.tsx#L56) is mounted.

Important notes:

- Pendo is only loaded if a valid `PENDO_API_KEY` is configured as an environment variable. In our development, staging, and production environments, `PENDO_API_KEY` is available at build time. See **Locally Testing Page Views & Custom Events and/or Troubleshooting Pendo** for set up with local environments.
- We load the Pendo agent from the CDN, rather than [self-hosting](https://support.pendo.io/hc/en-us/articles/360038969692-Self-hosting-the-Pendo-agent).
- We are hashing account and visitor IDs in a way that is consistent with Akamai's standards.
- At initialization, we do string transformation on select URL patterns to **remove sensitive data**. When new URL patterns are added to Cloud Manager, verify that existing transforms remove sensitive data; if not, update the transforms.
- Pendo is currently not using any client-side (cookies or local) storage.
- Pendo makes use of the existing `data-testid` properties, used in our automated testing, for tagging elements. They are more persistent and reliable than CSS properties, which are liable to change.

### Locally Testing Page Views & Custom Events and/or Troubleshooting Pendo

1. Set the `REACT_APP_PENDO_API_KEY` environment variable in `.env`.
2. Use the browser tools Network tab, filter requests by "pendo", and check that successful network requests have been made to load Pendo scripts. (Also visible in browser tools Sources tab.)
3. In the browser console, type `pendo.validateEnvironment()`.
4. You should see command output in the console, and it should include a hashed `accountId` and hashed `visitorId`. Each page view change or custom event that fires should be visible as a request in the Network tab.
16 changes: 9 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"test:sdk": "yarn workspace @linode/api-v4 test",
"test:search": "yarn workspace @linode/search test",
"test:ui": "yarn workspace @linode/ui test",
"package-versions": "node ./scripts/package-versions/index.js",
"package-versions": "yarn workspace @linode/scripts package-versions",
"storybook": "yarn workspace linode-manager storybook",
"cy:run": "yarn workspace linode-manager cy:run",
"cy:e2e": "yarn workspace linode-manager cy:e2e",
Expand All @@ -39,23 +39,25 @@
"cy:component": "yarn workspace linode-manager cy:component",
"cy:component:run": "yarn workspace linode-manager cy:component:run",
"cy:rec-snap": "yarn workspace linode-manager cy:rec-snap",
"changeset": "node scripts/changelog/changeset.mjs",
"generate-changelogs": "node scripts/changelog/generate-changelogs.mjs",
"changeset": "yarn workspace @linode/scripts changeset",
"generate-changelogs": "yarn workspace @linode/scripts generate-changelogs",
"coverage": "yarn workspace linode-manager coverage",
"coverage:summary": "yarn workspace linode-manager coverage:summary",
"junit:summary": "tsx scripts/junit-summary/index.ts",
"generate-tod": "tsx scripts/tod-payload/index.ts",
"junit:summary": "YARN_SILENT=1 yarn workspace @linode/scripts junit:summary",
"generate-tod": "YARN_SILENT=1 yarn workspace @linode/scripts generate-tod",
"docs": "bunx vitepress@1.0.0-rc.44 dev docs",
"prepare": "husky"
},
"resolutions": {
"node-fetch": "^2.6.7",
"yaml": "^2.3.0",
"semver": "^7.5.2"
"semver": "^7.5.2",
"cookie": "^0.7.0"
},
"workspaces": {
"packages": [
"packages/*"
"packages/*",
"scripts"
]
},
"version": "0.0.0",
Expand Down
32 changes: 32 additions & 0 deletions packages/api-v4/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
## [2025-01-14] - v0.132.0

### Added:

- Types for UDP NodeBalancer support ([#11321](https://github.com/linode/manager/pull/11321))
- Tags to `KubeNodePoolResponse` and `CreateNodePoolData` ([#11368](https://github.com/linode/manager/pull/11368))

### Changed:

- Type of `AlertDefinitionType` to `'system'|'user'` ([#11346](https://github.com/linode/manager/pull/11346))
- Property names, and types of the CreateAlertDefinitionPayload and Alert interfaces ([#11392](https://github.com/linode/manager/pull/11392))
- BaseDatabase total_disk_size_gb and used_disk_size_gb are always expected and used_disk_size_gb can be null ([#11426](https://github.com/linode/manager/pull/11426))
- Renamed `AvailableMetrics` type to `MetricDefinition` ([#11433](https://github.com/linode/manager/pull/11433))
- Changed MetricCritera, DimensionFilter and Alert Interfaces ([#11445](https://github.com/linode/manager/pull/11445))

### Fixed:

- Nullable AccountBeta ended & description properties ([#11347](https://github.com/linode/manager/pull/11347))
- Incorrect return type of `updateObjectACL` ([#11369](https://github.com/linode/manager/pull/11369))

### Removed:

- getAccountInfoBeta endpoint ([#11413](https://github.com/linode/manager/pull/11413))
- `MetricDefinitions` type ([#11433](https://github.com/linode/manager/pull/11433))

### Upcoming Features:

- Fix types for IAM API ([#11397](https://github.com/linode/manager/pull/11397))
- Add new `getAlertDefinitionByServiceTypeAndId` endpoint to fetch Cloud Pulse alert details by id and service type ([#11399](https://github.com/linode/manager/pull/11399))
- New `Block Storage Performance B1` linode capability ([#11400](https://github.com/linode/manager/pull/11400))
- Add `getKubernetesTypesBeta` function ([#11419](https://github.com/linode/manager/pull/11419))

## [2024-12-10] - v0.131.0

### Added:
Expand Down
2 changes: 1 addition & 1 deletion packages/api-v4/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@linode/api-v4",
"version": "0.131.0",
"version": "0.132.0",
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
"bugs": {
"url": "https://github.com/linode/manager/issues"
Expand Down
12 changes: 0 additions & 12 deletions packages/api-v4/src/account/account.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,6 @@ export const getAccountInfo = () => {
return Request<Account>(setURL(`${API_ROOT}/account`), setMethod('GET'));
};

/**
* getAccountInfoBeta
*
* Return beta endpoint account information,
* including contact and billing info.
*
* @TODO LKE-E - M3-8838: Clean up after released to GA, if not otherwise in use
*/
export const getAccountInfoBeta = () => {
return Request<Account>(setURL(`${BETA_API_ROOT}/account`), setMethod('GET'));
};

/**
* getNetworkUtilization
*
Expand Down
59 changes: 31 additions & 28 deletions packages/api-v4/src/account/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,32 +59,35 @@ export interface Account {

export type BillingSource = 'linode' | 'akamai';

export type AccountCapability =
| 'Akamai Cloud Load Balancer'
| 'Akamai Cloud Pulse'
| 'Block Storage'
| 'Block Storage Encryption'
| 'Cloud Firewall'
| 'CloudPulse'
| 'Disk Encryption'
| 'Kubernetes'
| 'Kubernetes Enterprise'
| 'Linodes'
| 'LKE HA Control Planes'
| 'LKE Network Access Control List (IP ACL)'
| 'Machine Images'
| 'Managed Databases'
| 'Managed Databases Beta'
| 'NETINT Quadra T1U'
| 'NodeBalancers'
| 'Object Storage Access Key Regions'
| 'Object Storage Endpoint Types'
| 'Object Storage'
| 'Placement Group'
| 'SMTP Enabled'
| 'Support Ticket Severity'
| 'Vlans'
| 'VPCs';
export const accountCapabilities = [
'Akamai Cloud Load Balancer',
'Akamai Cloud Pulse',
'Block Storage',
'Block Storage Encryption',
'Cloud Firewall',
'CloudPulse',
'Disk Encryption',
'Kubernetes',
'Kubernetes Enterprise',
'Linodes',
'LKE HA Control Planes',
'LKE Network Access Control List (IP ACL)',
'Machine Images',
'Managed Databases',
'Managed Databases Beta',
'NETINT Quadra T1U',
'NodeBalancers',
'Object Storage Access Key Regions',
'Object Storage Endpoint Types',
'Object Storage',
'Placement Group',
'SMTP Enabled',
'Support Ticket Severity',
'Vlans',
'VPCs',
] as const;

export type AccountCapability = typeof accountCapabilities[number];

export interface AccountAvailability {
region: string; // will be slug of dc (matches id field of region object returned by API)
Expand Down Expand Up @@ -604,8 +607,8 @@ export interface AccountBeta {
label: string;
started: string;
id: string;
ended?: string;
description?: string;
ended: string | null;
description: string | null;
/**
* The datetime the account enrolled into the beta
* @example 2024-10-23T14:22:29
Expand Down
32 changes: 30 additions & 2 deletions packages/api-v4/src/cloudpulse/alerts.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
import { createAlertDefinitionSchema } from '@linode/validation';
import Request, { setURL, setMethod, setData } from '../request';
import Request, {
setURL,
setMethod,
setData,
setParams,
setXFilter,
} from '../request';
import { Alert, AlertServiceType, CreateAlertDefinitionPayload } from './types';
import { BETA_API_ROOT as API_ROOT } from 'src/constants';
import { BETA_API_ROOT as API_ROOT } from '../constants';
import { Params, Filter, ResourcePage } from '../types';

export const createAlertDefinition = (
data: CreateAlertDefinitionPayload,
Expand All @@ -16,3 +23,24 @@ export const createAlertDefinition = (
setMethod('POST'),
setData(data, createAlertDefinitionSchema)
);

export const getAlertDefinitions = (params?: Params, filters?: Filter) =>
Request<ResourcePage<Alert>>(
setURL(`${API_ROOT}/monitor/alert-definitions`),
setMethod('GET'),
setParams(params),
setXFilter(filters)
);

export const getAlertDefinitionByServiceTypeAndId = (
serviceType: string,
alertId: number
) =>
Request<Alert>(
setURL(
`${API_ROOT}/monitor/services/${encodeURIComponent(
serviceType
)}/alert-definitions/${encodeURIComponent(alertId)}`
),
setMethod('GET')
);
6 changes: 3 additions & 3 deletions packages/api-v4/src/cloudpulse/services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import Request, { setData, setMethod, setURL } from '../request';
import {
JWEToken,
JWETokenPayLoad,
MetricDefinitions,
MetricDefinition,
ServiceTypesList,
} from './types';
import { ResourcePage as Page } from 'src/types';
import { ResourcePage } from 'src/types';

export const getMetricDefinitionsByServiceType = (serviceType: string) => {
return Request<Page<MetricDefinitions>>(
return Request<ResourcePage<MetricDefinition>>(
setURL(
`${API_ROOT}/monitor/services/${encodeURIComponent(
serviceType
Expand Down
Loading
Loading