Skip to content

Commit

Permalink
Add developer setup instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
seanyeh committed Jan 7, 2025
1 parent 0c179b6 commit 5348874
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 3 deletions.
46 changes: 46 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributing to ESC SDK

## Building from source

### Prerequisites

* [OpenAPI Generator](https://openapi-generator.tech/docs/installation/)

### Building

ESC SDK uses OpenAPI Generator to auto-generate the raw API clients from the `swagger.yaml` definition.

To build the autogenerated API clients, run:

```shell
make generate_sdks
```

Additionally, ESC SDK provides wrapper clients for TypeScript/JavaScript, Python, and Go. To build these packages, run:

```shell
make build_typescript
make build_python
make build_go
```

## Submitting a Pull Request

For contributors we use the [standard fork based workflow](https://gist.github.com/Chaser324/ce0505fbed06b947d962): Fork this repository, create a topic branch, and when ready, open a pull request from your fork.

## Creating a Release

This section is for Pulumi employees only.

To release a new version of the provider, follow steps below:
- Create a release commit by updating `.version` and running `make generate_sdks` ([example](https://github.com/pulumi/esc-sdk/pull/61))
- Run release commands, replacing `X.XX.XX` with your new version.
```
git checkout main
git pull
git tag sdk/vX.XX.XX
git tag vX.XX.XX
git push origin vX.XX.XX
git push origin sdk/vX.XX.XX
```
- Github Actions will automatically build, test and then publish the new release to all the various package managers
38 changes: 35 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,51 @@
Pulumi ESC (Environments, Secrets, and Configurations) provides a developer-first solution to simplify how you manage sensitive data and configurations across your entire application lifecycle. It's a fully managed solution allowing teams to generate dynamic cloud provider credentials, aggregate secrets, and configurations from multiple sources, and manage them through composable collections called "environments." These environments can be consumed from anywhere, making Pulumi ESC ideal for any application and development workflow. Additionally, while Pulumi ESC works independently to eliminate duplication and reduce drift and sprawl of secrets and configuration for all your applications, it also integrates smoothly with Pulumi Infrastructure as Code (IaC) to enhance these capabilities within the Pulumi ecosystem.


## Introducing the Pulumi ESC SDK
### Introducing the Pulumi ESC SDK
We're excited to unveil the official Pulumi ESC SDK, making it even easier to harness the power of ESC directly within your applications using your favorite programming languages. The SDK provides a simple, programmatic interface to all of Pulumi ESC's robust features, allowing you to:

Manage the Entire Lifecycle of Your Environments: Create new environments, list existing ones, and easily update or delete them as your needs evolve. You can even add version tags to your environments, making it simple to track changes and roll back to previous states if needed.
Seamlessly Integrate Secrets and Configurations: Securely access and utilize secrets and configurations within your applications. The SDK provides a streamlined way to fetch the information you need, whether it's cloud credentials, database connection strings, feature flags, or any other sensitive data.


## Why use the Pulumi ESC SDK?
### Why use the Pulumi ESC SDK?
Here's why you'll love using the Pulumi ESC SDK:

* Focus on Building, Not Plumbing: No more writing boilerplate code for API interactions. The SDK handles the complexities of secret retrieval and configuration management, so you can focus on your application's core functionality.
* Eliminate Hardcoded Secrets: Say goodbye to hardcoded credentials scattered throughout your codebase. With the SDK, your application can securely retrieve secrets from Pulumi ESC at runtime.
* Eliminate Hardcoded Secrets: Say goodbye to hardcoded credentials scattered throughout your codebase. With the SDK, your application can securely retrieve secrets from Pulumi ESC at runtime.
* Centralized Configuration Management: Manage all your application settings from a single source of truth. The SDK provides easy access to configurations stored in Pulumi ESC, ensuring consistency across environments.
* Enhanced Security: The Pulumi ESC SDK promotes secure secret handling best practices. It handles the secure storage and retrieval of your sensitive data, minimizing the risk of accidental exposure.
* Intuitive and Idiomatic: The SDK is built to feel like a natural extension of your chosen programming language. You'll work with familiar objects, methods, and patterns, making integration smooth and intuitive.
* Type Safety and Code Completion: Benefit from the power of your IDE. The SDK provides type safety, enabling compile-time checks and helpful code suggestions that reduce errors and speed up your development workflow.

## Getting Started

### TypeScript/JavaScript

```shell
npm install @pulumi/esc-sdk
```

[TypeScript/JavaScript examples](https://www.pulumi.com/docs/esc/development/languages-sdks/javascript/)

### Python

```shell
pip install pulumi-esc-sdk
```

[Python examples](https://www.pulumi.com/docs/esc/development/languages-sdks/python/)

### Go

```shell
go get github.com/pulumi/esc-sdk/sdk
```

[Go examples](https://www.pulumi.com/docs/esc/development/languages-sdks/go/)

## API Reference Documentation

* [TypeScript/JavaScript](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/esc-sdk/)
* [Python](https://www.pulumi.com/docs/reference/pkg/python/pulumi_esc_sdk/)
* [Go](https://pkg.go.dev/github.com/pulumi/esc-sdk/sdk/go)

0 comments on commit 5348874

Please sign in to comment.