Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
d9799c5
upcoming: [M3-10326] - VM Host Maintenance - Status Icon, Copy Update…
jaalah-akamai Jul 24, 2025
e388dfe
chore: [M3-10368] - Use `DebouncedSearchTextField` on Images Landing …
bnussman-akamai Jul 24, 2025
00874ec
test: [M3-8559] - Increase `Security.test.tsx` `waitFor` timeout from…
jdamore-linode Jul 24, 2025
b12096d
upcoming: [DI-25355] - Added util function to filter region based on …
nikhagra-akamai Jul 25, 2025
30026cf
feat: [M3-10361] - Use Search v2 to power the Volumes Landing page (#…
bnussman-akamai Jul 25, 2025
6ff6446
upcoming: [DI-25634] - Added linode_id to label translation in cloudp…
nikhagra-akamai Jul 26, 2025
2818947
fix: [M3-10316] - Disabled state styling for zebra stripped table row…
hasyed-akamai Jul 28, 2025
6077b3d
fix: [M3-10384] - standardize `<FormHelperText />` error handling acr…
harsh-akamai Jul 28, 2025
5dd19ea
test: [DI-26399]- Add Cypress verification tests for CloudPulse NodeB…
agorthi-akamai Jul 28, 2025
4532307
fix: [M3-9993, M3-10147] - Disabled Region select in Nodebalancer cre…
hasyed-akamai Jul 28, 2025
bb043d8
change: [M3-10348, M3-10013] - Add/update inline docs for ACLP Alerts…
pmakode-akamai Jul 28, 2025
a0b6aa5
upcoming: [DI-25992] - Updated AlertRegions component to extend the f…
nikhagra-akamai Jul 28, 2025
ef3a4e4
fix: [M3-9986] - Selected Geographical Area state in Distributed Regi…
hana-akamai Jul 28, 2025
5cd604a
change: [M3-10097] - Akamai Design System: Link Component (#12569)
harsh-akamai Jul 29, 2025
7df4088
Merge pull request #12577 from linode/staging
mjac0bs Jul 29, 2025
6f20b24
Merge branch 'master' into develop
Jul 29, 2025
c22c202
upcoming: [M3-9863] - Add Subnet IPv6 Prefix Length to VPC create pag…
hana-akamai Jul 29, 2025
a4f0004
test: [M3-10076]- Add tests for ACLP alerts in Linode create flow (#1…
dmcintyr-akamai Jul 29, 2025
115ee9d
upcoming: [M3-9864] – Add new columns to VPC Subnet & Subnet linodes …
dwiley-akamai Jul 29, 2025
63fa9c1
upcoming: [M3-10203] - Add IPv6 (dual stack) support to LKE-E create …
mjac0bs Jul 29, 2025
5f3402e
[M3-10358] - Improve Create Linode code splitting & routing (#12554)
alioso Jul 30, 2025
31574cc
[DPS-34204] DataStream - cleanup docs and costs (#12572)
mduda-akamai Jul 30, 2025
eba5807
fix: `lke-create.spec.ts` failures due to LKE version 1.31 being depr…
bnussman-akamai Jul 30, 2025
62b4fe0
fix: [M3-10351] - Align Encrypt Volume checkbox in Volume Create with…
cpathipa Jul 30, 2025
5075e69
change: [M3-8151] - Allow Linode Select options to be disabled on a p…
cpathipa Jul 30, 2025
c771de5
feat: [UIE-8845, UIE-8832, UIE-8834, UIE-8833] - IAM RBAC: add a perm…
aaleksee-akamai Jul 30, 2025
9983af1
feat: [UIE-8999] - IAM RBAC Adjust the parameters to useQueryWithPerm…
corya-akamai Jul 30, 2025
3ec0ccc
fix: [M3-10394] - Use human readable date/time for maintenance window…
jaalah-akamai Jul 30, 2025
0f8577b
chore:[M3-10397] - Update PR Template to Encourage Video Previews (#1…
bill-akamai Jul 30, 2025
9675774
change: Improve PR template based on team feedback (#12609)
mjac0bs Jul 30, 2025
ec90ac8
change: [M3-9911] - Add generic description to Premium tab to support…
pmakode-akamai Jul 31, 2025
2253937
feat: [UIE-8955] - IAM RBAC: Fix removing entity can cause empty page…
rodonnel-akamai Jul 31, 2025
7662ca0
fix: [M3-10393] - Add border to countries with white backgrounds (#12…
jaalah-akamai Jul 31, 2025
579c541
tech-story: [M3-10347] - MSW CRUD: prevent deletion of vpcs/subnets w…
coliu-akamai Jul 31, 2025
8954c18
[DPS-34044] - Validate streams and destinations (#12557)
kagora-akamai Jul 31, 2025
0eea9b0
fix: [M3-10264] - Disabled Autocomplete Options (#12583)
bnussman-akamai Jul 31, 2025
09e5ecb
feat: [M3-10391] - Surface LKE Node Pool Version for LKE Enterprise C…
bnussman-akamai Jul 31, 2025
ddfa049
fix: [M3-10399] - Restore the previous date value when Cancel is clic…
cpathipa Jul 31, 2025
231ba36
fix:[M3-10280] - 'Description' preview view in SupportTicketDialog an…
bill-akamai Jul 31, 2025
bdce3d7
fix: Region Select change that is causing test failures (#12622)
bnussman-akamai Jul 31, 2025
97733f5
fix: [M3-10336] - Checkbox color token - pt2 (#12603)
hasyed-akamai Aug 1, 2025
77c9c04
upcoming: [M3-10385] - Add Linode Interface support for Linode Create…
coliu-akamai Aug 1, 2025
9f85345
fix: [M3-10410] - Fix Cypress test summary missing test name (#12620)
jdamore-linode Aug 1, 2025
0ce357c
test: [M3-10051] - Add Cypress tests for QEMU Upgrade Notice (#12564)
cliu-akamai Aug 1, 2025
68e0081
upcoming: [M3-9979] – Add VPC IPv6 address in Linode Detail > Summary…
dwiley-akamai Aug 1, 2025
89ea4f0
upcoming: [DPS-33693] Destination form - existing destination mode, G…
mduda-akamai Aug 4, 2025
f944119
fix: [M3-10299] - DatePicker: Show error, if end date time is before …
cpathipa Aug 4, 2025
41d507a
upcoming: [DI-26397] - Consuming the LD flag for account alert and me…
santoshp210-akamai Aug 5, 2025
8faf4e4
fix: [M3-10286] - Premature validation of Linode Alert numeric input …
pmakode-akamai Aug 5, 2025
f46f801
upcoming: [DI-26396] - Nodebalancer Dimension Config_ID customization…
santoshp210-akamai Aug 5, 2025
835d27a
fix: [DI-26114] - Adding in operator check to create-alert schema (#1…
santoshp210-akamai Aug 5, 2025
878fd68
feat: [UIE-9001] - IAM RBAC update usePermissions hook return type (#…
corya-akamai Aug 5, 2025
69396ac
upcoming: [M3-10201] - Add BYO VPC support to LKE cluster create flow…
mjac0bs Aug 5, 2025
e731492
upcoming: [M3-10432] - Update VM Host Maintenance GPU Notice Text (#1…
jaalah-akamai Aug 5, 2025
67c502e
fix: [DI-26621] - Replaced isFetching check with isLoading check (#12…
nikhagra-akamai Aug 5, 2025
5c810ce
fix: [M3-10096] - Prevent creating a nodepool with a `--number` of no…
coliu-akamai Aug 5, 2025
d94e426
fix:[M3-10310] - Harmless bug in Cloud Manager allows users to enter …
bill-akamai Aug 5, 2025
c479a3f
fix: [M3-10439] - Non-Human-Readable Validation Messages for Linode A…
pmakode-akamai Aug 6, 2025
dddbb3f
feat: [UIE-8834] - IAM RBAC integrated permission in edit billing con…
corya-akamai Aug 6, 2025
473315f
fix: [UIE-9003] - DBaaS - node selector options for premium and provi…
smans-akamai Aug 6, 2025
44d29e8
upcoming: [M3-10204] - Add VPC IPv4 and IPv6 columns to Node Pool tab…
mjac0bs Aug 6, 2025
0795c69
test: [M3-10436] - Fix the time format of the start time in QEMU Upda…
cliu-akamai Aug 6, 2025
d6bc28b
feat: [OCA-1567] - Adds August 2025 Marketplace apps (#12642)
josephcardillo-akamai Aug 6, 2025
351a529
feat: [UIE-8872] - IAM RBAC - Firewalls / Nodebalancers permissions (…
rodonnel-akamai Aug 6, 2025
787acaf
change: [DI-26319] - Updated logic to render filters based on dashboa…
nikhagra-akamai Aug 6, 2025
639590f
fix: [DI-26688] - Fixed incorrect unit display in metric widget (#12647)
nikhagra-akamai Aug 6, 2025
85ef49b
Cloud version v1.148.0, API v4 version v0.146.0, Validation version v…
jaalah Aug 6, 2025
dcbc918
update changelogs with manual changes
bnussman Aug 7, 2025
dbde7ef
feat: [UIE-8840, UIE-8841, UIE-8842, UIE-8843, UIE-8844] - IAM RBAC: …
mpolotsk-akamai Aug 7, 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
  •  
  •  
  •  
16 changes: 12 additions & 4 deletions docs/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,25 @@ List any change(s) relevant to the reviewer.
- ...
- ...

### Scope 🚢

Upon production release, changes in this PR will be visible to:

- [ ] All customers
- [ ] Some customers (e.g. in Beta or Limited Availability)
- [ ] No customers / Not applicable

## Target release date 🗓️

Please specify a release date (and environment, if applicable) to guarantee timely review of this PR. If exact date is not known, please approximate and update it as needed.

## Preview 📷

**Include a screenshot or screen recording of the change.**
**Include a screenshot `<img src="" />` or video `<video src="" />` of the change.**

:lock: Use the [Mask Sensitive Data](https://cloud.linode.com/profile/settings) setting for security.

:bulb: Use `<video src="" />` tag when including recordings in table.
:bulb: For changes requiring multiple steps to validate, prefer a video for clarity.

| Before | After |
| ------- | ------- |
Expand Down Expand Up @@ -78,7 +86,7 @@ Please specify a release date (and environment, if applicable) to guarantee time

</details>

---
<!-- This content will not appear in the rendered Markdown

## Commit message and pull request title format standards

Expand All @@ -98,4 +106,4 @@ Please specify a release date (and environment, if applicable) to guarantee time

**Example:** `feat: [M3-1234] - Allow user to view their login history`

---
-->
28 changes: 28 additions & 0 deletions packages/api-v4/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
## [2025-08-12] - v0.146.0


### Added:

- ACLP: `string` type for `capabilityServiceTypeMapping` constant ([#12573](https://github.com/linode/manager/pull/12573))

### Changed:

- Update `LinodeIPsResponseIPV6` to include `vpc` array ([#12600](https://github.com/linode/manager/pull/12600))

### Removed:

- Unnecessary in-progress event.status type during earlier development ([#12512](https://github.com/linode/manager/pull/12512))
- `getNodePoolBeta` in favor of `getNodePool` ([#12596](https://github.com/linode/manager/pull/12596))
- `createNodePoolBeta` in favor of `createNodePool` ([#12596](https://github.com/linode/manager/pull/12596))
- `updateNodePoolBeta` in favor of `updateNodePool` ([#12596](https://github.com/linode/manager/pull/12596))
- `CreateNodePoolDataBeta` in favor of `CreateNodePoolData` ([#12596](https://github.com/linode/manager/pull/12596))
- `UpdateNodePoolDataBeta` in favor of `UpdateNodePoolData` ([#12596](https://github.com/linode/manager/pull/12596))

### Upcoming Features:

- Add optional vpc_id and subnet_id fields to CreateKubeClusterPayload for LKE-E ([#12551](https://github.com/linode/manager/pull/12551))
- Add validation to Create Stream POST request ([#12557](https://github.com/linode/manager/pull/12557))
- Add GET API endpoints for Destinations ([#12559](https://github.com/linode/manager/pull/12559))
- Remove the docs and costs from streams and destinations landing pages and stream create form ([#12572](https://github.com/linode/manager/pull/12572))
- Add type and update cluster payload and interface to support optional stack_type field for LKE-E ([#12594](https://github.com/linode/manager/pull/12594))

## [2025-07-29] - v0.145.0


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.145.0",
"version": "0.146.0",
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
"bugs": {
"url": "https://github.com/linode/manager/issues"
Expand Down
2 changes: 1 addition & 1 deletion packages/api-v4/src/cloudpulse/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ export interface DeleteAlertPayload {
}

export const capabilityServiceTypeMapping: Record<
MetricsServiceType,
AlertServiceType | MetricsServiceType | string,
AccountCapability
> = {
linode: 'Linodes',
Expand Down
31 changes: 31 additions & 0 deletions packages/api-v4/src/datastream/destinations.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { BETA_API_ROOT } from '../constants';
import Request, { setMethod, setParams, setURL, setXFilter } from '../request';

import type { Filter, ResourcePage as Page, Params } from '../types';
import type { Destination } from './types';

/**
* Returns all the information about a specified Destination.
*
* @param destinationId { number } The ID of the Destination to access.
*
*/
export const getDestination = (destinationId: number) =>
Request<Destination>(
setURL(
`${BETA_API_ROOT}/monitor/streams/destinations/${encodeURIComponent(destinationId)}`,
),
setMethod('GET'),
);

/**
* Returns a paginated list of Destinations.
*
*/
export const getDestinations = (params?: Params, filter?: Filter) =>
Request<Page<Destination>>(
setURL(`${BETA_API_ROOT}/monitor/streams/destinations`),
setMethod('GET'),
setParams(params),
setXFilter(filter),
);
2 changes: 2 additions & 0 deletions packages/api-v4/src/datastream/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export * from './destinations';

export * from './streams';

export * from './types';
4 changes: 3 additions & 1 deletion packages/api-v4/src/datastream/streams.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { createStreamSchema } from '@linode/validation';

import { BETA_API_ROOT } from '../constants';
import Request, {
setData,
Expand Down Expand Up @@ -41,7 +43,7 @@ export const getStreams = (params?: Params, filter?: Filter) =>
*/
export const createStream = (data: CreateStreamPayload) =>
Request<Stream>(
setData(data), // @TODO (DPS-34044) add validation schema
setData(data, createStreamSchema),
setURL(`${BETA_API_ROOT}/monitor/streams`),
setMethod('POST'),
);
5 changes: 3 additions & 2 deletions packages/api-v4/src/datastream/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,12 @@ export const destinationType = {
export type DestinationType =
(typeof destinationType)[keyof typeof destinationType];

export interface Destination {
export interface Destination extends AuditData {
details: DestinationDetails;
id: number;
label: string;
type: DestinationType;
version: string;
}

export type DestinationDetails =
Expand Down Expand Up @@ -86,7 +87,7 @@ interface ClientCertificateDetails {
type AuthenticationType = 'basic' | 'none';

interface Authentication {
details: AuthenticationDetails;
details?: AuthenticationDetails;
type: AuthenticationType;
}

Expand Down
64 changes: 5 additions & 59 deletions packages/api-v4/src/kubernetes/nodePools.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
nodePoolBetaSchema,
nodePoolSchema,
} from '@linode/validation/lib/kubernetes.schema';
import { nodePoolSchema } from '@linode/validation/lib/kubernetes.schema';

import { API_ROOT, BETA_API_ROOT } from '../constants';
import Request, {
Expand All @@ -15,11 +12,8 @@ import Request, {
import type { Filter, ResourcePage as Page, Params } from '../types';
import type {
CreateNodePoolData,
CreateNodePoolDataBeta,
KubeNodePoolResponse,
KubeNodePoolResponseBeta,
UpdateNodePoolData,
UpdateNodePoolDataBeta,
} from './types';

/**
Expand All @@ -36,7 +30,9 @@ export const getNodePools = (
setMethod('GET'),
setParams(params),
setXFilter(filters),
setURL(`${API_ROOT}/lke/clusters/${encodeURIComponent(clusterID)}/pools`),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(clusterID)}/pools`,
),
);

/**
Expand All @@ -46,21 +42,6 @@ export const getNodePools = (
*/
export const getNodePool = (clusterID: number, nodePoolID: number) =>
Request<KubeNodePoolResponse>(
setMethod('GET'),
setURL(
`${API_ROOT}/lke/clusters/${encodeURIComponent(
clusterID,
)}/pools/${encodeURIComponent(nodePoolID)}`,
),
);

/**
* getNodePoolBeta
*
* Returns a single node pool with additional beta fields
*/
export const getNodePoolBeta = (clusterID: number, nodePoolID: number) =>
Request<KubeNodePoolResponseBeta>(
setMethod('GET'),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(
Expand All @@ -76,26 +57,11 @@ export const getNodePoolBeta = (clusterID: number, nodePoolID: number) =>
*/
export const createNodePool = (clusterID: number, data: CreateNodePoolData) =>
Request<KubeNodePoolResponse>(
setMethod('POST'),
setURL(`${API_ROOT}/lke/clusters/${encodeURIComponent(clusterID)}/pools`),
setData(data, nodePoolSchema),
);

/**
* createNodePool
*
* Adds a node pool to the specified cluster with beta fields.
*/
export const createNodePoolBeta = (
clusterID: number,
data: CreateNodePoolDataBeta,
) =>
Request<KubeNodePoolResponseBeta>(
setMethod('POST'),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(clusterID)}/pools`,
),
setData(data, nodePoolBetaSchema),
setData(data, nodePoolSchema),
);

/**
Expand All @@ -118,26 +84,6 @@ export const updateNodePool = (
setData(data, nodePoolSchema),
);

/**
* updateNodePoolBeta
*
* Change the type, count, upgrade_strategy, or k8_version of a node pool
*/
export const updateNodePoolBeta = (
clusterID: number,
nodePoolID: number,
data: Partial<UpdateNodePoolDataBeta>,
) =>
Request<KubeNodePoolResponseBeta>(
setMethod('PUT'),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(
clusterID,
)}/pools/${encodeURIComponent(nodePoolID)}`,
),
setData(data, nodePoolBetaSchema),
);

/**
* deleteNodePool
*
Expand Down
Loading
Loading