
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@distilled.cloud/aws
Advanced tools
Effect-native AWS SDK generated from Smithy models with full protocol support. Covers S3, Lambda, DynamoDB, SQS, IAM, EC2, and 200+ services with exhaustive error typing.
npm install @distilled.cloud/aws effect
import { Effect, Layer } from "effect";
import * as Stream from "effect/Stream";
import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
import * as Lambda from "@distilled.cloud/aws/lambda";
import * as S3 from "@distilled.cloud/aws/s3";
import { Credentials, Region } from "@distilled.cloud/aws";
const program = Effect.gen(function* () {
yield* S3.putObject({
Bucket: "my-bucket",
Key: "hello.txt",
Body: "Hello, World!",
});
const result = yield* S3.getObject({
Bucket: "my-bucket",
Key: "hello.txt",
});
const functions = yield* Lambda.listFunctions
.items({})
.pipe(Stream.take(10), Stream.runCollect);
return result.ContentType;
});
const AwsLive = Layer.mergeAll(
FetchHttpClient.layer,
Region.fromEnv(),
Credentials.fromChain(),
);
program.pipe(Effect.provide(AwsLive), Effect.runPromise);
Region.fromEnv() reads from the AWS_REGION environment variable (falls back to AWS_DEFAULT_REGION):
AWS_REGION=us-east-1
Credentials.fromChain() uses the standard AWS credential provider chain, which tries each source in order until one succeeds:
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and optionally AWS_SESSION_TOKEN~/.aws/credentials (supports multiple profiles via AWS_PROFILE)aws sso login --profile your-profile (reads cached SSO tokens)AWS_WEB_IDENTITY_TOKEN_FILE for OIDC federation (EKS)You can also use a specific provider directly:
// Environment variables only
Credentials.fromEnv()
// SSO profile (run `aws sso login` first)
Credentials.fromSSO("my-profile")
// Shared credentials file (~/.aws/credentials)
Credentials.fromIni()
// Static credentials
Credentials.fromCredentials({
accessKeyId: "AKIA...",
secretAccessKey: "...",
})
Credentials are cached and automatically refreshed 5 minutes before expiration.
All operations return typed errors for pattern matching:
S3.getObject({ Bucket: "my-bucket", Key: "missing.txt" }).pipe(
Effect.catchTags({
NoSuchKey: () => Effect.succeed(null),
AccessDenied: (e) => Effect.fail(new Error(`Access denied: ${e.message}`)),
}),
);
Supports all AWS protocols: REST-XML (S3), REST-JSON (Lambda), AWS JSON 1.0/1.1 (DynamoDB, KMS), AWS Query (IAM, STS), and EC2 Query.
MIT
FAQs
Unknown package
The npm package @distilled.cloud/aws receives a total of 320,670 weekly downloads. As such, @distilled.cloud/aws popularity was classified as popular.
We found that @distilled.cloud/aws demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.