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.97.0 - stagingmaster #9382

Merged
merged 2 commits into from
Jul 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
  •  
  •  
  •  
27 changes: 13 additions & 14 deletions docs/GETTING_STARTED.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

$ curl https://get.volta.sh | bash

## Add nvm to your .*rc file, or open a new terminal window.
## Add volta to your .*rc file, or open a new terminal window.

$ volta install node@18.14.1

Expand All @@ -42,26 +42,25 @@
10. Navigate to the root directory of the repository, then start Cloud Manager and the JS client with `yarn up`.
11. After installation, Cloud Manager should be running at http://localhost:3000.

## Serving a production build of Cloud Manager:
## Serving a production build of Cloud Manager

Since Cloud Manager was generated using Create React App, `yarn build` can be used to generate an optimized production bundle:
You can then serve these files however you prefer or use our included local http server.

```bash
yarn install:all

yarn install:all

yarn workspace linode-manager build
yarn workspace linode-manager build

yarn workspace linode-manager run start:ci
```

You can then serve these files however you prefer, for example, with [http-server](https://www.npmjs.com/package/http-server):

```bash

npm install -g http-server
## Exposing Cloud Manager's dev server to the network

cd packages/manager/build
By default, Cloud Manager's dev server only listens on `localhost`. If you need to
expose the Vite dev server, you can use the following command.

http-server .
> **Note**: This is useful for running Cloud Manager's dev server in Docker-like environments

```
```bash
yarn up:expose
```
2 changes: 1 addition & 1 deletion docs/development-guide/04-component-library.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ We use [Material-UI](https://mui.com/material-ui/getting-started/overview/) as t
All MUI components have abstractions in the Cloud Manager codebase, meaning you will use relative imports to use them instead of importing from MUI directly:

```ts
import Typography from "src/components/core/Typography"; // NOT from '@mui/material/Typography'
import { Typography } from "src/components/Typography"; // NOT from '@mui/material/Typography'
```

We do this because it gives us the ability to customize the component and still keep imports consistent. It also gives us flexibility if we ever wanted to change out the underlying component library.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"up:expose": "yarn install:all && yarn build:validation && yarn build:sdk && yarn start:all:expose",
"dev": "yarn install:all && yarn start:all",
"start:all": "concurrently -n api-v4,validation,manager -c blue,yellow,green \"yarn workspace @linode/api-v4 start\" \"yarn workspace @linode/validation start\" \"yarn workspace linode-manager start\"",
"start:all:expose": "concurrently -n api-v4,validation,manager -c blue,yellow,green \"yarn workspace @linode/api-v4 start\" \"yarn workspace @linode/validation start\" \"yarn workspace linode-manager start --host\"",
"start:all:expose": "concurrently -n api-v4,validation,manager -c blue,yellow,green \"yarn workspace @linode/api-v4 start\" \"yarn workspace @linode/validation start\" \"yarn workspace linode-manager start:expose\"",
"start:manager": "yarn workspace linode-manager start",
"start:manager:ci": "yarn workspace linode-manager start:ci",
"clean": "rm -rf node_modules && rm -rf packages/@linode/api-v4/node_modules && rm -rf packages/manager/node_modules && rm -rf packages/@linode/validation/node_modules",
Expand Down
13 changes: 13 additions & 0 deletions packages/api-v4/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
## [2023-07-11] - v0.96.0


### Added:

- Endpoints for VPC ([#9361](https://github.com/linode/manager/pull/9361))
- Endpoints for the Akamai Global Load Balancer ([#9363](https://github.com/linode/manager/pull/9363))

### Changed:

- Use 'canceled' instead of 'cancelled' for EntityTransferStatus ([#9335](https://github.com/linode/manager/pull/9335))


## [2023-06-27] - v0.95.1


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.95.1",
"version": "0.96.0",
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
"bugs": {
"url": "https://github.com/linode/manager/issues"
Expand Down
68 changes: 68 additions & 0 deletions packages/api-v4/src/aglb/entrypoints.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import Request, { setData, setMethod, setURL } from '../request';
import { ResourcePage } from 'src/types';
import { BETA_API_ROOT } from 'src/constants';
import type {
CreateEntrypointPayload,
Entrypoint,
EntrypointPayload,
} from './types';

/**
* getEntrypoints
*
* Returns a paginated list of Akamai Global Load Balancer entry points
*/
export const getEntrypoints = () =>
Request<ResourcePage<Entrypoint>>(
setURL(`${BETA_API_ROOT}/aglb/entrypoints`),
setMethod('GET')
);

/**
* getEntrypoint
*
* Returns an Akamai Global Load Balancer entry point
*/
export const getEntrypoint = (id: number) =>
Request<Entrypoint>(
setURL(`${BETA_API_ROOT}/aglb/entrypoints/${encodeURIComponent(id)}`),
setMethod('GET')
);

/**
* createEntrypoint
*
* Creates an Akamai Global Load Balancer entry point
*/
export const createEntrypoint = (data: CreateEntrypointPayload) =>
Request<Entrypoint>(
setURL(`${BETA_API_ROOT}/aglb/entrypoints`),
setData(data),
setMethod('POST')
);

/**
* updateEntrypoint
*
* Updates an Akamai Global Load Balancer entry point
*/
export const updateEntrypoint = (
id: number,
data: Partial<EntrypointPayload>
) =>
Request<Entrypoint>(
setURL(`${BETA_API_ROOT}/aglb/entrypoints/${encodeURIComponent(id)}`),
setData(data),
setMethod('POST')
);

/**
* deleteEntrypoint
*
* Deletes an Akamai Global Load Balancer entry point
*/
export const deleteEntrypoint = (id: number) =>
Request<{}>(
setURL(`${BETA_API_ROOT}/aglb/entrypoints/${encodeURIComponent(id)}`),
setMethod('DELETE')
);
68 changes: 68 additions & 0 deletions packages/api-v4/src/aglb/loadbalancers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import Request, { setData, setMethod, setURL } from '../request';
import { BETA_API_ROOT } from 'src/constants';
import { ResourcePage } from 'src/types';
import type {
CreateLoadbalancerPayload,
Loadbalancer,
UpdateLoadbalancerPayload,
} from './types';

/**
* getLoadbalancers
*
* Returns a paginated list of Akamai Global Load Balancers
*/
export const getLoadbalancers = () =>
Request<ResourcePage<Loadbalancer>>(
setURL(`${BETA_API_ROOT}/aglb/loadbalancers`),
setMethod('GET')
);

/**
* getLoadbalancer
*
* Returns an Akamai Global Load Balancer
*/
export const getLoadbalancer = (id: number) =>
Request<Loadbalancer>(
setURL(`${BETA_API_ROOT}/aglb/loadbalancers/${encodeURIComponent(id)}`),
setMethod('GET')
);

/**
* createLoadbalancer
*
* Creates an Akamai Global Load Balancer
*/
export const createLoadbalancer = (data: CreateLoadbalancerPayload) =>
Request<Loadbalancer>(
setURL(`${BETA_API_ROOT}/aglb/loadbalancers`),
setData(data),
setMethod('POST')
);

/**
* updateLoadbalancer
*
* Updates an Akamai Global Load Balancer
*/
export const updateLoadbalancer = (
id: number,
data: UpdateLoadbalancerPayload
) =>
Request<Loadbalancer>(
setURL(`${BETA_API_ROOT}/aglb/loadbalancers/${encodeURIComponent(id)}`),
setData(data),
setMethod('POST')
);

/**
* deleteLoadbalancer
*
* Deletes an Akamai Global Load Balancer
*/
export const deleteLoadbalancer = (id: number) =>
Request<{}>(
setURL(`${BETA_API_ROOT}/aglb/loadbalancers/${encodeURIComponent(id)}`),
setMethod('DELETE')
);
61 changes: 61 additions & 0 deletions packages/api-v4/src/aglb/routes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import Request, { setData, setMethod, setURL } from '../request';
import { ResourcePage } from 'src/types';
import { BETA_API_ROOT } from 'src/constants';
import type { Route, RoutePayload } from './types';

/**
* getRoutes
*
* Returns a paginated list of Akamai Global Load Balancer routes
*/
export const getRoutes = () =>
Request<ResourcePage<Route>>(
setURL(`${BETA_API_ROOT}/aglb/routes`),
setMethod('GET')
);

/**
* getRoute
*
* Returns an Akamai Global Load Balancer route
*/
export const getRoute = (id: number) =>
Request<Route>(
setURL(`${BETA_API_ROOT}/aglb/routes/${encodeURIComponent(id)}`),
setMethod('GET')
);

/**
* createRoute
*
* Creates an Akamai Global Load Balancer route
*/
export const createRoute = (data: RoutePayload) =>
Request<Route>(
setURL(`${BETA_API_ROOT}/aglb/routes`),
setData(data),
setMethod('POST')
);

/**
* updateRoute
*
* Updates an Akamai Global Load Balancer route
*/
export const updateRoute = (id: number, data: Partial<RoutePayload>) =>
Request<Route>(
setURL(`${BETA_API_ROOT}/aglb/routes/${encodeURIComponent(id)}`),
setData(data),
setMethod('POST')
);

/**
* deleteRoute
*
* Deletes an Akamai Global Load Balancer route
*/
export const deleteRoute = (id: number) =>
Request<{}>(
setURL(`${BETA_API_ROOT}/aglb/routes/${encodeURIComponent(id)}`),
setMethod('DELETE')
);
64 changes: 64 additions & 0 deletions packages/api-v4/src/aglb/service-targets.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import Request, { setData, setMethod, setURL } from '../request';
import { ResourcePage } from 'src/types';
import { BETA_API_ROOT } from 'src/constants';
import type { ServiceTarget, ServiceTargetPayload } from './types';

/**
* getServiceTargets
*
* Returns a paginated list of Akamai Global Load Balancer service targets
*/
export const getServiceTargets = () =>
Request<ResourcePage<ServiceTarget>>(
setURL(`${BETA_API_ROOT}/aglb/service-targets`),
setMethod('GET')
);

/**
* getServiceTarget
*
* Returns an Akamai Global Load Balancer route
*/
export const getServiceTarget = (id: number) =>
Request<ServiceTarget>(
setURL(`${BETA_API_ROOT}/aglb/service-targets/${encodeURIComponent(id)}`),
setMethod('GET')
);

/**
* createServiceTarget
*
* Creates an Akamai Global Load Balancer route
*/
export const createServiceTarget = (data: ServiceTargetPayload) =>
Request<ServiceTarget>(
setURL(`${BETA_API_ROOT}/aglb/service-targets`),
setData(data),
setMethod('POST')
);

/**
* updateServiceTarget
*
* Updates an Akamai Global Load Balancer route
*/
export const updateServiceTarget = (
id: number,
data: Partial<ServiceTargetPayload>
) =>
Request<ServiceTarget>(
setURL(`${BETA_API_ROOT}/aglb/service-targets/${encodeURIComponent(id)}`),
setData(data),
setMethod('POST')
);

/**
* deleteServiceTarget
*
* Deletes an Akamai Global Load Balancer service target
*/
export const deleteServiceTarget = (id: number) =>
Request<{}>(
setURL(`${BETA_API_ROOT}/aglb/service-targets/${encodeURIComponent(id)}`),
setMethod('DELETE')
);
Loading