npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@pyriter/piezopy-iam-role

v1.1.6

Published

PIEZOPY IAM ROLE

Readme

Piezopy IAM Role

Patreon

Description

A reusable AWS CDK construct that creates a standardized IAM role for dashboard applications. This construct provides a pre-configured IAM role with read-only access to AWS billing information, designed to be used across multiple CDK stacks or projects.

Features

  • Standardized IAM Role: Creates a consistent IAM role with predefined permissions
  • Billing Read Access: Automatically attaches AWSBillingReadOnlyAccess managed policy
  • Conditional Creation: Optional role creation based on configuration
  • CDK Integration: Built as a native CDK construct for seamless integration
  • TypeScript Support: Full TypeScript definitions and source code
  • Comprehensive Testing: Full test coverage with Jest

Install

npm install @pyriter/piezopy-iam-role

One Time Setup

This construct requires AWS CDK to be set up in your project. Ensure you have:

  1. AWS CDK CLI installed globally
  2. AWS credentials configured
  3. CDK project initialized

Usage

Basic Usage

import { Stack, App } from 'aws-cdk-lib';
import { PiezopyDashboardIamRole } from '@pyriter/piezopy-iam-role';

const app = new App();
const stack = new Stack(app, 'MyStack');

// Create the dashboard IAM role
const dashboardRole = new PiezopyDashboardIamRole(stack, 'DashboardRole');

// The role is now available as dashboardRole.role

Conditional Role Creation for multi-region deployment within same aws account

import { PiezopyDashboardIamRole } from '@pyriter/piezopy-iam-role';

const dashboardRole = new PiezopyDashboardIamRole(stack, 'DashboardRole', {
  shouldCreate: false
});

API Reference

PiezopyDashboardIamRoleProps

| Property | Type | Default | Description | |----------|------|---------|-------------| | shouldCreate | boolean | true | Whether to create the IAM role |

PiezopyDashboardIamRole

Properties

| Property | Type | Description | |----------|------|-------------| | role | iam.Role \| null | The created IAM role or null if not created |

Constructor

constructor(scope: Construct, id: string, props?: PiezopyDashboardIamRoleProps)

IAM Role Details

The created IAM role has the following characteristics:

  • Role Name: PIEZOPY_DASHBOARD_DO_NOT_DELETE
  • Trust Policy: Allows the AWS account 861276101356 to assume this role
  • Managed Policies: AWSBillingReadOnlyAccess (read-only access to billing)
  • Removal Policy: DESTROY (deleted when stack is destroyed)

Development

Prerequisites

  • Node.js 18+
  • TypeScript 5.0+
  • AWS CDK 2.0+

Build

npm run build

Test

npm test

Watch Mode

npm run watch

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass
  6. Submit a pull request

License

This project is licensed under the GPL License.

Support