2.8.3 • Published 6 months ago

@enspirit/seshat v2.8.3

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

Seshat

SeshatLogo

:warning: This is a complete rewrite of Seshat. If you're looking for the v1, please head to the v1 branch :warning:

See the Breaking Changes section for incompatibilities between v1 & v2.


Seshat provides a way to interact with storage (be it local, gcs, s3, ...) using HTTP while providing ways to implement things such as:

  • access-control (not everyone can do the same things on objects)
  • avoid file collision (many people want to upload files with the same name, they shouldn't override each other)
  • transform files upon upload (compressing, image cropping, ...)
  • async vs sync file processing upon uploads
  • ...

How?

Seshat provides a series of middlewares and routers that can be used in any express app in order to serve/accept files.

Vocabulary

Most of the vocabulary used in seshat reuses concept shared by many cloud storage solution such as S3 and GCS such as Bucket and Object.

A Bucket is a storage place where Objects can be written. In Seshat, a Bucket can be backed by a local storage (your disk) an S3 Bucket, a GCS Bucket or even a certain prefix on an S3/GCS bucket.

Policies provides us with an easy way to implement things like access control, ready-only buckets or buckets that only accept a certain kind of objects.

Transformers allow us to transform objects as they are being uploaded or retrieved from a bucket. (eg. resize an image, compress files, ...)

Examples

Please have a look at the examples/ folder, you'll find simple examples showcasing:

Breaking Changes

http protocol

Seshat v2's HTTP layer has some breaking changes compared to v1:

POST

  • v1 supported multiple file uploads via multipart/form-data but never returned anything else than a 204 status code with a Location header with the first object's public url. v2 returns an actual JSON payload with an array of object metadata.
2.6.0

7 months ago

2.8.1

7 months ago

2.8.0

7 months ago

2.7.0

7 months ago

2.8.3

6 months ago

2.8.2

7 months ago

2.5.0

12 months ago

2.4.3

12 months ago

2.5.1

12 months ago

2.4.2

1 year ago

2.4.4

12 months ago

2.4.1

1 year ago

2.4.0

1 year ago

2.2.1

2 years ago

2.1.2

2 years ago

2.0.15

2 years ago

2.2.0

2 years ago

2.1.1

2 years ago

2.0.16

2 years ago

2.2.3

2 years ago

2.1.4

2 years ago

2.0.13

2 years ago

2.3.1

2 years ago

2.2.2

2 years ago

2.0.14

2 years ago

2.2.5

2 years ago

2.1.6

2 years ago

2.0.11

2 years ago

2.2.4

2 years ago

2.1.5

2 years ago

2.0.12

2 years ago

2.2.7

2 years ago

2.1.8

2 years ago

2.1.7

2 years ago

2.0.10

2 years ago

2.1.0

2 years ago

2.1.9

2 years ago

2.0.17

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago