Skip to content

Commit

Permalink
For public release
Browse files Browse the repository at this point in the history
  • Loading branch information
yanakayus committed Jan 29, 2025
1 parent 8736099 commit efed983
Show file tree
Hide file tree
Showing 667 changed files with 91,693 additions and 1 deletion.
29 changes: 29 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module.exports = {
env: {
browser: true,
es2021: true,
},
plugins: ["@typescript-eslint", "vitest", "neverthrow"],
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:vitest/recommended"],
overrides: [
{
env: {
node: true,
},
files: [".eslintrc.{js,cjs}"],
parserOptions: {
sourceType: "script",
},
},
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
rules: {
"vitest/consistent-test-it": ["error", { fn: "it" }],
"vitest/require-top-level-describe": ["error"],
// "neverthrow/must-use-result": "error",
},
};
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug report
about: Bug report
title: "[<package Name>] : "
labels: bug
---

# Description

<!--- Provide a description of the change or addition you are proposing -->

## Expected Behavior

<!--- Tell us what happens instead of the expected behavior -->

## Current Behavior

<!--- Tell us what happens instead of the expected behavior -->

## Steps to Reproduce

<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->

1.
2.
3.
4.

## Context (Environment)

<!--- How has this issue affected you? What are you trying to accomplish? -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->

## Possible Solution

<!--- Not obligatory, but suggest a fix/reason for the bug, -->
23 changes: 23 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
### Issue # (if applicable)

Closes #<issue number here>.

### 🎉 Reason for this change

<!--What is the bug or use case behind this change?-->

### 🔀 Description of changes

<!--What code changes did you make? Have you made any important design decisions?-->

### 🖨️ Description of how you validated changes

<!--Have you added any unit tests and/or integration tests?-->

### 👀 Points to be checked especially by reviewers (if any)

<!--Describe any particular points you would like reviewers to check.-->

### 🔗 Related links

<!--Please include any relevant links -->
137 changes: 137 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# for macos
.DS_Store
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
6 changes: 6 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"printWidth": 160,
"tabWidth": 2,
"semi": true,
"singleQuote": false
}
35 changes: 35 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.tabSize": 2,
"files.associations": { "*.json": "jsonc" },
"[typescript]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": false
},
"[javascript]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": false
},
"[javascriptreact]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": false
},
"[typescriptreact]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": false
},
"[yaml]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": false
},
"[jsonc]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": false
},
"[markdown]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": false
},
"typescript.tsdk": "node_modules/typescript/lib",
"cSpell.words": ["hono", "neverthrow"]
}
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright 2025 Sony Group Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
62 changes: 61 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,61 @@
# stamp
# Stamp

Stamp is an approval request workflow management tool that facilitates the submission, approval, and revocation of requests. It monitors the status of each request and initiates subsequent workflows upon approval.

Currently, it offers workflows for IAM Identity Center and IAM Role permission elevation and can be extended with custom integrations.

<div align="center">
<img src="img/stamp_request.gif" alt="Stamp Request Flow" width="70%" />
</div>

## Features

- Manage approval requests (submission, approval, and revocation)
- Approve requests via web interface or Slack
- Integrate with other systems through custom code
- Track and trigger downstream actions following approvals

## Predefined Approval Workflow Catalogs

Stamp organizes approval workflows into **Catalogs** based on integrations. Each Catalog is located in the `/catalogs` directory and includes configurations for specific approval processes.

| Catalog Name | Description | Path |
| ------------------- | ------------------------------------------------------------------------------------------------- | -------------------- |
| IAM Identity Center | Manages and elevates permissions using AWS IAM Identity Center seamlessly. | `/catalogs/iam-idc` |
| IAM Role | Handles temporary IAM Role permissions with integrated approval steps and supports GitHub's OIDC. | `/catalogs/iam-role` |
| Custom Integrations | Extends Stamp by integrating with other systems through customizable workflows. | |

Please refer to [How to Develop for Stamp Catalog](docs/development/how-to-develop-stamp-catalog.md) for developing custom integrations.

## Get Started

Stamp can be deployed using AWS DynamoDB, Amazon Cognito, and AWS container services such as ECS and AppRunner.

### Local Execution

To get started with local development:

Refer to [the Web UI documentation](apps/web-ui/README.md) for setup and running the application locally.

### IAM Identity Center Catalog

To deploy using the IAM Identity Center Catalog features:

- Follow the [deployment documentation](docs/operation/deployment-with-iam-idc-catalog.md).
- For usage instructions, consult [this guide](docs/user-guide/how-to-submit-iam-idc-catalog.md).

## Contributing

Thank you for contributing to Stamp. Your support helps us improve and grow the project.

### Reporting Bugs

Please submit bug reports through [GitHub Issues](https://github.com/sony/stamp/issues/new?template=bug_report.md).

### Asking Questions

For inquiries, use [GitHub Discussions](https://github.com/sony/stamp/discussions/categories/q-a).

### Pull Requests

Please submit pull requests to the main branch. Maintainers will review your contributions.
Loading

0 comments on commit efed983

Please sign in to comment.