planetarium / NineChronicles.Bridge

A bridge implementation for the NineChronicles planets
3 stars 3 forks source link

➕ PDX-120: Support KMS account #38

Closed moreal closed 9 months ago

moreal commented 9 months ago

It resolves #20

It makes bridge able to use KMS account. For the backward-compatibility, if there is no other configuration, it uses NC_UPSTREAM_PRIVATE_KEY and NC_DOWNSTREAM_PRIVATE_KEY. To use KMS feature, set NC_UPSTREAM_ACCOUNT_TYPE=KMS and set NC_UPSTREAM__KMS__KEY_ID and NC_UPSTREAM__KMS__PUBLIC_KEY[^1].

You can get public key and address easily by the below script.

import { Address } from "@planetarium/account";
import { AwsKmsKeyStore, KMSClient } from "@planetarium/account-aws-kms";

const store = new AwsKmsKeyStore(new KMSClient());

async function main() {
    const key = await store.get('KEY_ID');
    if (key.result === 'success') {
        const publicKey = await key.account.getPublicKey();
        console.log('publicKey', publicKey.toHex('uncompressed'));
        console.log('Address', Address.deriveFrom(publicKey).toHex());
    }
}

main();

[^1]: uncompressed format

moreal commented 9 months ago

@longfin I pushed more commits to pass lint CI check and makes Docker image build success[^1].

[^1]: Docker build is failing, https://github.com/planetarium/NineChronicles.Bridge/actions/runs/6902303428/job/18778737221

pull-request-quantifier-deprecated[bot] commented 9 months ago

This PR has 50 quantified lines of changes. In general, a change size of upto 200 lines is ideal for the best PR experience!


Quantification details

``` Label : Extra Small Size : +42 -8 Percentile : 20% Total files changed: 6 Change summary by file extension: .sample : +7 -0 .json : +1 -0 .ts : +33 -7 Dockerfile : +1 -1 ``` > Change counts above are quantified counts, based on the [PullRequestQuantifier customizations](https://github.com/microsoft/PullRequestQuantifier/blob/main/docs/prquantifier-yaml.md).

Why proper sizing of changes matters

Optimal pull request sizes drive a better predictable PR flow as they strike a balance between between PR complexity and PR review overhead. PRs within the optimal size (typical small, or medium sized PRs) mean: - Fast and predictable releases to production: - Optimal size changes are more likely to be reviewed faster with fewer iterations. - Similarity in low PR complexity drives similar review times. - Review quality is likely higher as complexity is lower: - Bugs are more likely to be detected. - Code inconsistencies are more likely to be detected. - Knowledge sharing is improved within the participants: - Small portions can be assimilated better. - Better engineering practices are exercised: - Solving big problems by dividing them in well contained, smaller problems. - Exercising separation of concerns within the code changes. #### What can I do to optimize my changes - Use the PullRequestQuantifier to quantify your PR accurately - Create a context profile for your repo using the [context generator](https://github.com/microsoft/PullRequestQuantifier/releases) - Exclude files that are not necessary to be reviewed or do not increase the review complexity. Example: Autogenerated code, docs, project IDE setting files, binaries, etc. Check out the `Excluded` section from your `prquantifier.yaml` context profile. - Understand your typical change complexity, drive towards the desired complexity by adjusting the label mapping in your `prquantifier.yaml` context profile. - Only use the labels that matter to you, [see context specification](./docs/prquantifier-yaml.md) to customize your `prquantifier.yaml` context profile. - Change your engineering behaviors - For PRs that fall outside of the desired spectrum, review the details and check if: - Your PR could be split in smaller, self-contained PRs instead - Your PR only solves one particular issue. (For example, don't refactor and code new features in the same PR). #### How to interpret the change counts in git diff output - One line was added: `+1 -0` - One line was deleted: `+0 -1` - One line was modified: `+1 -1` (git diff doesn't know about modified, it will interpret that line like one addition plus one deletion) - Change percentiles: Change characteristics (addition, deletion, modification) of this PR in relation to all other PRs within the repository.


Was this comment helpful? :thumbsup:  :ok_hand:  :thumbsdown: (Email) Customize PullRequestQuantifier for this repository.