newrelic / nr1-community

An open-source library of useful components for building on New Relic One's programmability platform.
https://developer.newrelic.com
Apache License 2.0
11 stars 12 forks source link

Create UserSecretNameListQuery to align with related NerdGraph feature #76

Open tangollama opened 4 years ago

tangollama commented 4 years ago

Create a data fetching component that wraps a NerdGraph request like the following (currently only accessible in the Product schema, but to be released in some modified form later in the year).

{
  actor {
    nerdStorageVault {
      secrets
    }
  }
}

UserSecretNameListQuery

Query Storage Vault (i.e. secrets encrypted at rest) for user scoped list of secrets.

Declarative query

//retrieve and use a stored secret
import { UserSecretNameListQuery } from '@newrelic/nr1-community';

<UserSecretNameListQuery>
  {({ loading, error, data }) => {
    if (loading) {
      return <Spinner />;
    }
    if (error) {
      return 'Error!';
    }
    const { secrets } = data;
    return (<ul>
      {data.secrets.map((secret, i) => <li key={i}>{secret}</li>)}
    </ul>);
  }}
</UserSecretNameListQuery>;

Imperative query

UserSecretNameListQuery.query().then(({ data }) => console.log(data));

Props

prop REQUIRED type description
children TRUE function Render prop function as a child.