diff --git a/README.md b/README.md index 4ad08007..d1efec61 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,12 @@ Errors are highlighted, so you can quickly spot suspicious behavior or bugs in y Take the investigation further with quick links into to your CloudTrail event history. + + +Generate or manually configure service control policies for your accounts to help you enforce least privilege access and meet compliance requirements. + +Preview service control policies and apply them with the click of a button. + ## Open Source or SaaS Cloud Snitch is open sourced under the MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) so if you're feeling adventurous, you can deploy it directly to your own cloud. Alternatively, you can get up and running in under 5 minutes with an individual or team plan at [cloudsnitch.io](https://cloudsnitch.io). diff --git a/design/assets/gallery.pxd b/design/assets/gallery.pxd index e476503f..4e3ffacb 100644 Binary files a/design/assets/gallery.pxd and b/design/assets/gallery.pxd differ diff --git a/design/readme/defend.png b/design/readme/defend.png new file mode 100644 index 00000000..996f3e12 Binary files /dev/null and b/design/readme/defend.png differ diff --git a/design/screenshots/defend.png b/design/screenshots/defend.png new file mode 100644 index 00000000..a622266b Binary files /dev/null and b/design/screenshots/defend.png differ diff --git a/frontend/public/images/defend.png b/frontend/public/images/defend.png new file mode 100644 index 00000000..2b2ec32c Binary files /dev/null and b/frontend/public/images/defend.png differ diff --git a/frontend/src/app/(public-area)/features/page.tsx b/frontend/src/app/(public-area)/features/page.tsx index f3ae5be0..93a24e75 100644 --- a/frontend/src/app/(public-area)/features/page.tsx +++ b/frontend/src/app/(public-area)/features/page.tsx @@ -11,7 +11,7 @@ export const metadata: Metadata = { const Page = () => { return (
+ Generate or manually configure service control policies for your accounts to help you enforce + least privilege access and meet compliance requirements. +
+Preview service control policies and apply them with the click of a button.
+diff --git a/frontend/src/app/(public-area)/page.tsx b/frontend/src/app/(public-area)/page.tsx index 4ecb2c4f..91eefdd5 100644 --- a/frontend/src/app/(public-area)/page.tsx +++ b/frontend/src/app/(public-area)/page.tsx @@ -31,7 +31,10 @@ const Page = () => { to the next level.
- Cloud Snitch provides a sleek and intuitive way of exploring your AWS account activity. + Cloud Snitch provides a sleek and intuitive way of exploring your AWS account activity + along with controls to help you adopt best practices and meet compliance needs. +
+It's a great addition to any toolbox, regardless of if you're a hobbyist that's just getting started with the cloud or a large enterprise with complex and mature cloud infrastructure. @@ -55,8 +58,8 @@ const Page = () => {
- Cloud Snitch aims to do just one thing well: Enlighten you as to what's happening in your - cloud. + Cloud Snitch aims to do just one thing well: Make sure nothing happens in your cloud without + your knowledge.
Check out our features to learn how we do it.
diff --git a/frontend/src/app/(user-area)/teams/[teamId]/Rules.tsx b/frontend/src/app/(user-area)/teams/[teamId]/Rules.tsx index 790632b8..9a6fadf9 100644 --- a/frontend/src/app/(user-area)/teams/[teamId]/Rules.tsx +++ b/frontend/src/app/(user-area)/teams/[teamId]/Rules.tsx @@ -5,7 +5,7 @@ import Link from 'next/link'; import { Transition } from '@headlessui/react'; import { awsServices } from '@/aws'; -import { Button, ChipEditor, Dialog, ErrorMessage, SuccessMessage, SyntaxHighlighter } from '@/components'; +import { Button, ChipEditor, Dialog, ErrorMessage, InfoMessage, SuccessMessage, SyntaxHighlighter } from '@/components'; import { AWSAccount } from '@/generated/api'; import { useAwsRegions, useCurrentTeamId, useManagedAwsScp, useTeamAwsAccountsMap } from '@/hooks'; import { RuleSet } from '@/rules'; @@ -72,9 +72,13 @@ interface AccountPageProps { onBack: () => void; } +interface Message { + type: 'error' | 'info' | 'success'; + message: string; +} + const AccountPage = ({ account, onBack }: AccountPageProps) => { - const [errorMessage, setErrorMessage] = useState(''); - const [successMessage, setSuccessMessage] = useState(''); + const [message, setMessage] = useState