diff --git a/.github/styles/config/vocabularies/default/accept.txt b/.github/styles/config/vocabularies/default/accept.txt index a9bc51ee..4d3f106d 100644 --- a/.github/styles/config/vocabularies/default/accept.txt +++ b/.github/styles/config/vocabularies/default/accept.txt @@ -9,6 +9,7 @@ [Aa][Pp][Ii] [Aa]urora [Aa]rbitrum +[Aa]ccessor [Bb]ackend [Bb]inance [Bb]lockchain @@ -52,6 +53,7 @@ [Pp]olygon [Pp]ostgres [Pp]luggable +[Pp]repended [Qq]uicknode [Qq]uickstarts [Rr]eact @@ -256,6 +258,7 @@ Xai XDC YouTube Zengo +Zerion ZetaChain Zilliqa Zircuit diff --git a/pages/_meta.json b/pages/_meta.json index c18afc06..3f195dff 100644 --- a/pages/_meta.json +++ b/pages/_meta.json @@ -31,6 +31,16 @@ "type": "page", "display": "hidden" }, + "config-service-configuration": { + "title": "Config Service Reference", + "type": "page", + "display": "hidden" + }, + "transaction-service-configuration": { + "title": "Transaction Service Configuration", + "type": "page", + "display": "hidden" + }, "core-api": { "title": "API", "type": "page" diff --git a/pages/advanced/cli-reference/common-commands.mdx b/pages/advanced/cli-reference/common-commands.mdx index f0cb2fab..2da9cc28 100644 --- a/pages/advanced/cli-reference/common-commands.mdx +++ b/pages/advanced/cli-reference/common-commands.mdx @@ -154,7 +154,7 @@ pip install "safe-cli[ledger]" When running on Linux, make sure the following rules have been added to `/etc/udev/rules.d/`: -```commandline +```bash SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000", MODE="0660", TAG+="uaccess", TAG+="udev-acl" OWNER="" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0001", MODE="0660", TAG+="uaccess", TAG+="udev-acl" OWNER="" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0004", MODE="0660", TAG+="uaccess", TAG+="udev-acl" OWNER="" diff --git a/pages/advanced/passkeys/tutorials/react-native.mdx b/pages/advanced/passkeys/tutorials/react-native.mdx index c174e52b..0cb70303 100644 --- a/pages/advanced/passkeys/tutorials/react-native.mdx +++ b/pages/advanced/passkeys/tutorials/react-native.mdx @@ -79,7 +79,7 @@ When [creating the emulator](https://docs.expo.dev/get-started/set-up-your-envir Create a file named `.env` in the root of your project and add the following keys: -```.env +```bash // from ../../../../examples/react-native-passkeys/.env-sample ``` diff --git a/pages/config-service-configuration/_meta.json b/pages/config-service-configuration/_meta.json new file mode 100644 index 00000000..5b80548a --- /dev/null +++ b/pages/config-service-configuration/_meta.json @@ -0,0 +1,32 @@ +{ + "home": { + "title": "← Go Back", + "href": "/core-api/api-overview" + }, + "overview": "Overview", + "-- Authentication & Authorization": { + "type": "separator", + "title": "Authentication & Authorization" + }, + "add-or-edit-group": "Add or edit groups", + "add-user": "Add users", + "edit-user": "Edit users", + "-- Chains": { + "type": "separator", + "title": "Chains" + }, + "add-or-edit-chain": "Add or edit chains", + "add-or-edit-feature": "Add or edit features", + "add-or-edit-gas-price": "Add or edit gas prices", + "add-or-edit-wallet": "Add or edit wallets", + "-- Safe apps": { + "type": "separator", + "title": "Safe apps" + }, + "add-or-edit-safe-app": "Add or edit Safe Apps", + "add-or-edit-safe-app-feature": "Add or edit Safe App features", + "add-or-edit-tag": "Add or edit tags", + "add-or-edit-client": "Add or edit clients", + "add-or-edit-provider": "Add or edit providers", + "add-or-edit-social-profile": "Add or edit social profiles" +} diff --git a/pages/config-service-configuration/add-or-edit-chain.mdx b/pages/config-service-configuration/add-or-edit-chain.mdx new file mode 100644 index 00000000..dd27b57e --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-chain.mdx @@ -0,0 +1,191 @@ +# Add or edit chains + +Add (or edit) a blockchain network. + +## Usage + +You can add a new chain by visiting this address: [`http://localhost:8000/cfg/admin/chains/chain/add/`](http://localhost:8000/cfg/admin/chains/chain/add/) + +You can edit an existing chain by visiting this address: `http://localhost:8000/cfg/admin/chains/chain/{chain index}/change/` where `{chain index}` is the index of the chain you want to edit. + +## Parameters + +### `Chain Id` + +The unique identifier for the chain. + +### `Relevance` + +The relative importance of this chain for your project. You can use this value between 0 and 100 to sort chains in the UI. + +### `Chain name` + +The name of the chain, in plain letters. + +### `EIP-3770 short name` + +The short name of the chain, as defined in [EIP-3770](https://eips.ethereum.org/EIPS/eip-3770). This corresponds to the letters that will be prepended to all addresses on this chain. + +### `Description` + +A brief description of the chain. + +### `Chain logo uri` + +The chain's logo to upload. This will be displayed in the UI. + +### `L2` + +Whether this chain is a Layer 2 chain. + +### `Is testnet` + +Whether this chain is a testnet. This will be indicated in the UI. + +### `Rpc authentication` + +Whether the RPC endpoint requires authentication to access its data. + +### `Rpc uri` + +The URI of the chain's RPC endpoint. + +### `Safe apps rpc authentication` + +Whether the RPC endpoint dedicated to Safe Apps will require authentication. + +### `Safe Apps rpc uri` + +The URI of the chain's RPC endpoint dedicated to Safe Apps. + +### `Public rpc authentication` + +Whether the fallback public RPC endpoint will require authentication. + +### `Public rpc uri` + +The URI of the chain's RPC public endpoint. + +### `Block explorer uri address template` + +The URI template for the chain's block explorer addresses. This will be used to generate address links to the block explorer. For example: `https://etherscan.io/address/{{address}}`. + +### `Block explorer uri tx hash template` + +The URI template for the chain's block explorer transaction hashes. This will be used to generate `txHash` links to the block explorer. For example: `https://etherscan.io/tx/{{txHash}}`. + +### `Block explorer uri api template` + +The URI template for the chain's block explorer API. This will be used to fetch data from the block explorer. For example: `https://api.etherscan.io/api`. + +### `Beacon chain explorer uri public key template` + +The URI template for the chain's beacon chain explorer public keys. This will be used to generate public key links to the beacon chain explorer. For example: `https://beaconscan.com/validator/{{publicKey}}`. + +### `Currency name` + +The name of the chain's native currency. + +### `Currency symbol` + +The symbol of the chain's native currency. + +### `Currency decimals` + +The number of decimals of the chain's native currency. + +### `Currency logo uri` + +The chain's native currency logo to upload. This will be displayed in the UI. + +### `Transaction service uri` + +The URI of the chain's [Transaction Service](/core-api/api-safe-transaction-service). This will be used to fetch transaction data from the chain. You will need to deploy one Transaction Service per chain, as well as `txs-db`, `amqp` and `celery` instances. + +### `Vpc transaction service uri` + +The URI of the chain's VPC Transaction Service. If you are using a Virtual Private Cloud (VPC) to run your Transaction Service, you can set this URI to fetch transaction data from the chain. + +### `Theme text color` + +The hexadecimal chain color to display the text in the UI. + +### `Theme background color` + +The hexadecimal chain color to display the background in the UI. + +### `Ens registry address` + +The address of the chain's ENS registry. + +### `Recommended mastercopy version` + +The recommended version of the chain's mastercopy. This will be used to display a warning if the mastercopy is outdated. For example: `1.4.1`. + +### `Prices provider native coin` + +The native coin used by the chain's price provider. + +### `Prices provider chain name` + +The name of the chain on CoinGecko. + +### `Balances provider chain name` + +The name of the chain on Zerion. (Not implemented.) + +### `Balances provider enabled` + +Whether the chain's balances provider is enabled. + +### `Hidden` + +Whether the chain is hidden in the UI. + +### `Safe singleton address` + +The address of the chain's Safe singleton. + +### `Safe proxy factory address` + +The address of the chain's Safe ProxyFactory. + +### `Multisend address` + +The address of the chain's MultiSend contract. + +### `Multisand call only address` + +The address of the chain's MultiSendCallOnly contract. + +### `Fallback handler address` + +The address of the chain's FallbackHandler contract. + +### `Sign message lib address` + +The address of the chain's SignMessageLib contract. + +### `Create call address` + +The address of the chain's CreateCall contract. + +### `Simulate tx accessor address` + +The address of the chain's SimulateTxAccessor contract. + +### `Safe web authn signer factory address` + +The address of the chain's SafeWebAuthnSignerFactory contract. + +### Features enabled on this chain + +A list of [features](./add-or-edit-feature.mdx) enabled on this chain. You can select as many as you want by clicking `+ Add another Feature-chain relationship`. + +### Gas prices set for this chain + +A list of [gas prices](./add-or-edit-gas-price.mdx) set for this chain. You can select as many as you want by clicking `+ Add another Gas price`. + +### Wallets enabled for this chain + +A list of [wallets](./add-or-edit-wallet.mdx) enabled for this chain. You can select as many as you want by clicking `+ Add another Wallet-chain relationship`. diff --git a/pages/config-service-configuration/add-or-edit-client.mdx b/pages/config-service-configuration/add-or-edit-client.mdx new file mode 100644 index 00000000..84484a6e --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-client.mdx @@ -0,0 +1,15 @@ +# Add or edit Safe App clients + +Add (or edit) a new client to the configuration, so they can be attributed to Safe Apps. + +## Usage + +You can add a new client by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/client/add/` + +You can edit an existing client by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/client/{client index}/change/` where `{client index}` is the index of the client you want to edit. + +## Parameters + +### `Url` + +The URL the client is hosted at. diff --git a/pages/config-service-configuration/add-or-edit-feature.mdx b/pages/config-service-configuration/add-or-edit-feature.mdx new file mode 100644 index 00000000..26b683e0 --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-feature.mdx @@ -0,0 +1,24 @@ +# Add or edit chain features + +Add (or edit) a new feature to the configuration, so they can be attributed to chains. + +## Usage + +You can add a new feature by visiting this address: `http://localhost:8000/cfg/admin/chains/feature/add/` + +You can edit an existing feature by visiting this address: `http://localhost:8000/cfg/admin/chains/feature/{feature index}/change/` where `{feature index}` is the index of the feature you want to edit. + +## Parameters + +### `Chains` + +Select the chains that will have this feature enabled. + +### `Key` + +The key of the feature. This is the unique identifier for the feature. + +### `Description` + +A brief description of the feature. + diff --git a/pages/config-service-configuration/add-or-edit-gas-price.mdx b/pages/config-service-configuration/add-or-edit-gas-price.mdx new file mode 100644 index 00000000..98237cd2 --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-gas-price.mdx @@ -0,0 +1,43 @@ +# Add or edit chain gas prices + +Add (or edit) a new gas price to the configuration, so they can be attributed to chains. + +## Usage + +You can add a new gas price by visiting this address: `http://localhost:8000/cfg/admin/chains/gasprice/add/` + +You can edit an existing gas price by visiting this address: `http://localhost:8000/cfg/admin/chains/gasprice/{gasprice index}/change/` where `{gasprice index}` is the index of the gas price you want to edit. + +## Parameters + +### `Chain` + +The chain that will have this gas price enabled. + +### `Oracle uri` + +The URI of the oracle that will provide the gas price. + +### `Oracle parameter` + +The parameter that will be used to fetch the gas price from the oracle. + +### `Gwei multiplier factor` + +The factor that will be used to multiply the fetched gas price. This is useful when the oracle returns the gas price in a different unit than Gwei. + +### `Fixed gas price (wei)` + +A fixed gas price that will be used instead of fetching it from the oracle. This is useful when the oracle is not available. + +### `Rank` + +The relative importance of this gas price to your project. You can use this value between 0 and 100 to sort gas prices by priority. + +### `Max fee per gas (wei)` + +The `maxFeePerGas` that will be used to calculate the gas price. This is useful when the oracle returns a gas price that is too high. + +### `Max priority fee per gas (wei)` + +The `maxPriorityFeePerGas` that will be used to calculate the gas price. This is useful when the oracle returns a gas price that is too high. diff --git a/pages/config-service-configuration/add-or-edit-group.mdx b/pages/config-service-configuration/add-or-edit-group.mdx new file mode 100644 index 00000000..87e0b061 --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-group.mdx @@ -0,0 +1,17 @@ +# Add or edit user groups + +Add (or edit) a new group of permissions to the configuration, so they can be attributed to users. + +## Usage + +You can add a new group by visiting this address: `http://localhost:8000/cfg/admin/auth/group/add/` + +## Parameters + +### `Name` + +The name of the permission group. + +### `Permissions` + +Individual permissions to be added to the group. You can select as many as you want from the left column `Available permissions` and move them to the right column `Selected permissions`. diff --git a/pages/config-service-configuration/add-or-edit-provider.mdx b/pages/config-service-configuration/add-or-edit-provider.mdx new file mode 100644 index 00000000..5bd6a8bd --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-provider.mdx @@ -0,0 +1,19 @@ +# Add or edit Safe App providers + +Add (or edit) a new provider to the configuration, so they can be attributed to Safe Apps. + +## Usage + +You can add a new provider by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/provider/add/` + +You can edit an existing provider by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/provider/{provider index}/change/` where `{provider index}` is the index of the provider you want to edit. + +## Parameters + +### `Url` + +The URL the provider. + +### `Name` + +The name of the provider. diff --git a/pages/config-service-configuration/add-or-edit-safe-app-feature.mdx b/pages/config-service-configuration/add-or-edit-safe-app-feature.mdx new file mode 100644 index 00000000..d360a59e --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-safe-app-feature.mdx @@ -0,0 +1,24 @@ +# Add or edit Safe App features + +Add (or edit) a new Safe App feature to the configuration, so they can be attributed to chains. + +## Usage + +You can add a new Safe App feature by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/feature/add/` + +You can edit an existing Safe App feature by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/feature/{feature index}/change/` where `{feature index}` is the index of the Safe App feature you want to edit. + +## Parameters + +### `Chains` + +Select the chains that will have this feature enabled. + +### `Key` + +The key of the feature. This is the unique identifier for the feature. + +### `Description` + +A brief description of the feature. + diff --git a/pages/config-service-configuration/add-or-edit-safe-app.mdx b/pages/config-service-configuration/add-or-edit-safe-app.mdx new file mode 100644 index 00000000..76da4608 --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-safe-app.mdx @@ -0,0 +1,63 @@ +# Add or edit Safe Apps + +Add (or edit) a new Safe App to the configuration. + +## Usage + +You can add a new Safe App by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/safeapp/add/` + +You can edit an existing Safe App by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/safeapp/{safe app index}/change/` where `{safe app index}` is the index of the Safe App you want to edit. + +## Parameters + +### `Listed` + +Whether the Safe App is listed in the Safe App list. + +### `Url` + +The URL the Safe App is hosted at. + +### `Name` + +The name of the Safe App. + +### `Icon url` + +The icon of the Safe App to upload. + +### `Description` + +The description of the Safe App. + +### `ChainIds` + +The [chain](./add-or-edit-chain.mdx) IDs the Safe App is available on. + +### `Provider` + +The [provider](./add-or-edit-provider.mdx) of the Safe App. + +### `Exclusive clients` + +The [clients](./add-or-edit-client.mdx) that are exclusive to the Safe App. They cannot be used to access other Safe Apps. + +### `Developer website` + +The URL of the developer website of the Safe App. + +### `Featured` + +Whether the Safe App is featured in the Safe App list. + +### Tags for this Safe App + +The [tags](./add-or-edit-tag.mdx) that are associated with the Safe App. + +### Features set for this Safe Apps + +The [features](./add-or-edit-safe-app-feature.mdx) that are set for the Safe App. + +### Social profiles for this Safe App + +The [social profiles](./add-or-edit-social-profile.mdx) that are associated with the Safe App. diff --git a/pages/config-service-configuration/add-or-edit-social-profile.mdx b/pages/config-service-configuration/add-or-edit-social-profile.mdx new file mode 100644 index 00000000..6efbce57 --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-social-profile.mdx @@ -0,0 +1,23 @@ +# Add or edit Safe App social profiles + +Add (or edit) a new social profile to the configuration, so they can be attributed to Safe Apps. + +## Usage + +You can add a new social profile by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/socialprofile/add/` + +You can edit an existing social profile by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/socialprofile/{social profile index}/change/` where `{social profile index}` is the index of the social profile you want to edit. + +## Parameters + +### `Safe app` + +The Safe App the social profile is attributed to. + +### `Platform` + +The platform the social profile is hosted on (Twitter, Discord, Telegram or GitHub). + +### `Uri` + +The URI of the social profile. diff --git a/pages/config-service-configuration/add-or-edit-tag.mdx b/pages/config-service-configuration/add-or-edit-tag.mdx new file mode 100644 index 00000000..e9b346b8 --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-tag.mdx @@ -0,0 +1,24 @@ +# Add or edit Safe App tags + +Add (or edit) a new tag to the configuration, so they can be attributed to chains. + +## Usage + +You can add a new tag by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/tag/add/` + +You can edit an existing tag by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/tag/{tag index}/change/` where `{tag index}` is the index of the tag you want to edit. + +## Parameters + +### `Chains` + +Select the chains that will have this tag enabled. + +### `Key` + +The key of the tag. This is the unique identifier for the tag. + +### `Description` + +A brief description of the tag. + diff --git a/pages/config-service-configuration/add-or-edit-wallet.mdx b/pages/config-service-configuration/add-or-edit-wallet.mdx new file mode 100644 index 00000000..b0327245 --- /dev/null +++ b/pages/config-service-configuration/add-or-edit-wallet.mdx @@ -0,0 +1,24 @@ +# Add or edit wallets + +Add (or edit) a new wallet to the configuration, so they can be attributed to chains. This will enable the use of these wallets for these chains on (Web3 Onboard)(https://onboard.blocknative.com/docs/overview/introduction). + +## Usage + +You can add a new wallet by visiting this address: `http://localhost:8000/cfg/admin/chains/wallet/add/` + +You can edit an existing wallet by visiting this address: `http://localhost:8000/cfg/admin/chains/wallet/{wallet index}/change/` where `{wallet index}` is the index of the wallet you want to edit. + +## Parameters + +### `Chains` + +Select the chains that will have this wallet enabled. + +### `Key` + +The key of the wallet. This is the unique identifier for the wallet. + +### `Description` + +A brief description of the wallet. + diff --git a/pages/config-service-configuration/add-user.mdx b/pages/config-service-configuration/add-user.mdx new file mode 100644 index 00000000..87012513 --- /dev/null +++ b/pages/config-service-configuration/add-user.mdx @@ -0,0 +1,27 @@ +# Add user + +Add a new Django user. Users are generally admins from your organization that will have partial or total access to the Config Service. + +After creation, you can access more options to [edit this user](./edit-user.mdx). + +## Usage + +You can edit an existing user by visiting this address: `http://localhost:8000/cfg/admin/auth/user/{user index}/change/`, where `{user index}` is the index of the user you want to edit. + +## Parameters + +### `Username` + +A user name for identifying this user. Must be unique. + +### `Password-based authentication` + +This section is used to set whether the user will use Django's [built-in authentication system](https://docs.djangoproject.com/en/5.1/topics/auth/) (`Enabled`), or will use an external authentication system (`Disabled`). If you enable this option, you will need to set a password for the user. If you disable this option, you will have to implement [your own authentication method](https://docs.djangoproject.com/en/5.1/topics/auth/customizing/). + +### `Password` + +Opens a section to set a password for the user. + +### `Confirm password` + +A confirmation field for the password. diff --git a/pages/config-service-configuration/edit-user.mdx b/pages/config-service-configuration/edit-user.mdx new file mode 100644 index 00000000..e01a99e9 --- /dev/null +++ b/pages/config-service-configuration/edit-user.mdx @@ -0,0 +1,31 @@ +# Edit user + +Edit an existing Django user. + +## Usage + +You can add a new user by visiting this address: `http://localhost:8000/cfg/admin/auth/user/add/` + +## Parameters + +### `Username` + +A user name for identifying this user. Must be unique. + +### `Password` + +Opens a section to set a password for the user. You can set a new password or leave it blank to keep the current one. + +### Personal info + +You can set the user's first name, last name, and email. + +### Permissions + +You can use the checkboxes to activate/deactivate the user; allow this user to access this Django website (`Staff`); give this user all permissions (`Superuser`). + +Permissions to be added to the user. You can either add the user to a group, or assign permissions directly. + +### Important dates + +You can edit important information about logging times and creation date. diff --git a/pages/config-service-configuration/overview.mdx b/pages/config-service-configuration/overview.mdx new file mode 100644 index 00000000..191b1409 --- /dev/null +++ b/pages/config-service-configuration/overview.mdx @@ -0,0 +1,11 @@ +# Safe Config Service Django configuration + +This document describes how to configure the Config Service through the Django admin panel correctly. + +## Overview + +The Config Service is a Django application that allows you to manage configurations for your clients. It provides a web interface where you can create, update, and delete configurations, as well as manage groups of permissions to control who can access the configurations. + +It assumes you have already set up your [Safe instance](https://github.com/safe-global/safe-infrastructure). If you haven't, please refer to the [Safe Infrastructure Deployment](/core-api/safe-infrastructure-deployment) guide. + +The following document concerns only the Safe Config Service. For other services of Safe infrastructure, please refer to the [Safe API documentation](/core-api). \ No newline at end of file diff --git a/pages/core-api/_meta.json b/pages/core-api/_meta.json index f94bf715..c67b5b56 100644 --- a/pages/core-api/_meta.json +++ b/pages/core-api/_meta.json @@ -34,5 +34,18 @@ }, "safe-installation-overview": "Overview", "safe-contracts-deployment": "Contracts Deployment", - "safe-infrastructure-deployment": "Infrastructure Deployment" + "safe-infrastructure-deployment": "Infrastructure Deployment", + "-- Safe Config Service": { + "type": "separator", + "title": "Safe Config Service" + }, + "config-service-reference": { + "title": "Configuration", + "href": "/config-service-configuration/overview", + "theme": { + "layout": "full", + "toc": false, + "sidebar": false + } + } } diff --git a/pages/core-api/safe-infrastructure-deployment.mdx b/pages/core-api/safe-infrastructure-deployment.mdx index cf8cda6a..1ce16aa0 100644 --- a/pages/core-api/safe-infrastructure-deployment.mdx +++ b/pages/core-api/safe-infrastructure-deployment.mdx @@ -133,4 +133,6 @@ Open `http://YOUR_CONFIG_SERVICE_DOMAIN/admin` to configure your chain: ![safe-infrastructure-installation-config-service.png](../../assets/safe-infrastructure-installation-config-service.png) +You can find more information on all parameters available in the [Safe Config Service documentation](./config-service-configuration/overview.mdx). + Well done! You now have the Safe Contracts deployed on your chain and the Safe infrastructure up and running.