Comments (6)
@moea That link is dead - any chance you still have it? I might take a shot at this
from eulalie.
Just curious, for what use case is this needed?
from eulalie.
Mostly for local usage
from eulalie.
@prachetasp I don't, I'm not even sure what I was linking to. In general the source around this class may be helpful - not in terms of determining the implementation, just to get an idea of how the official SDK is handling it.
@zrzka In general I think being able to read credentials from as many sources as the official SDK is useful - I'm coming to the end of a large branch which reworks a lot of eulalie - using promises instead of channels, and breaking it up into separate projects with specs for the service maps - one of the changes is supporting implied credentials - i.e. issuing requests which don't explicitly have attached creds. Since falling back to instance credentials is a pain (it's hard to figure out if you're on EC2), having as many local sources as possible makes sense there, I think.
As a side note, I'm not sure what I'm going to do with the branch - have it be a separate, successor project to this, or just bump the major version but significantly change the API - because I don't know if the promise/spec/tidiness stuff is going to be as exciting to people who aren't me.
from eulalie.
Out of curiosity, which branch is your current refactor branch?
If you are significantly changing the API I support creating a different project. Don't know if you got a chance to see this: https://www.youtube.com/watch?v=oyLBGkS5ICk but I think it makes a strong case for separating breaking changes into distinct projects rather than glossing over them with a major version bump.
Two things I wanted to tackle with regards to eulalie were creds fallback and adding S3 support. I am not sure whether an S3 library is better created as a separate project or not. You seem to make the case for external libraries, however, still maintain significant functionality (Cognito, SES, etc.) within eulalie itself. Are you leaning more towards either of these routes for the future?
Finally, wanted to say I'm very impressed with these libraries and appreciate all the hard work you've put into them. Keep up the good work!
from eulalie.
@prachetasp Thanks for the thoughtful response.
wip/modules
is the branch - it contains eulalie-core
and eulalie-services
projects (w/ Dynamo and Cognito only, so far). I think i'm going to break the individual services into separate projects within the same repository (eulalie-dynamo
, etc.). In addition to promises, clojure.spec, generative testing, etc. the projects now also run in a browser environment, which is great.
I was fortunate enough to see the keynote in person, and am definitely leaning towards just not having a unified eulalie
artifact post-merge - projects can just depend on individual services, which is an option offered by the JVM AWS SDK - that'll get me off the hook for having to think of a new name for the project overall, without having any conflicts with the existing artifact.
As far as external libraries, the current approach is to have a complete, high-level, opinionated service implementation within eulalie, using third-party libraries only for utility functionality. I think it was a mistake to concentrate so much functionality inside eulalie itself, and wip/modules
only provides services which do request construction, retry, key hyphenation, etc. - no type mapping, aliases, etc. - so division of responsibilities is much more obvious.
S3 would be great. One thing likely to be more of an issue w/ S3, as opposed to, say, Dynamo, is that currently eulalie only supports immediate request/response bodies (strings or byte arrays) - i.e. the entire body must reside in memory at once. Figuring out how to present a stream abstraction unified across the browser, JVM and node might be a little work, but my hope is that it can be decoupled from the S3 implementation - i.e. there's initially a service impl which just deals with strings, and the stream stuff comes into play once eulalie supports it.
from eulalie.
Related Issues (20)
- NPE in httpkit.HeaderMap.encodeHeaders when :content nil
- In issue-request, allow symbolic service names in addition to service objects HOT 1
- Remove SDK dep in tests & use canned examples of signed requests
- Turn messy service defprotocol into a set of multimethods
- Enhance SNS support
- Add SQS support
- Support in-browser use
- Using IAM credentials causes :invalid-client-token-id error HOT 3
- Breaks with new core async HOT 3
- Conditionally use feross/buffer instead of Node's Buffer
- Replace buffer-crc32 Node module
- Replace use of Node's crypto module with goog.crypt.Sha256
- Conditionally use browser-aware HTTP client
- Conditionally skip some SQS tests if GCM_API_KEY is not set
- Occasionally locked at 100% CPU usage HOT 11
- Test SES error response parsing
- At least for STS, parse-xml-error chokes on non XML errors
- Errors in create function with zip-file can get very long HOT 3
- X-Ray support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eulalie.