Skip to content

Active? Want to integrate Custom OpenAPI Scalars & persisted Web-Hooks with better auth & multi-instancable by Redis/Mongo #1423

@paul-reventwork

Description

@paul-reventwork

Hello everyone and thanks a lot for your great work!

I am already looking forward to integrate SOFA into our GraphQL-architecture.

But before doing so, we must ensure that SOFA can fulfill all of our requirements, and since this is an (awesome) Open Source project I would love to integrate my proposals into the package as optional settings. These would be my goals:

Custom OpenAPI Scalars

As described in FEATURE REQUEST Missing functionality to represent user scalars as swagger types I would love to have the possibility to transform our custom Scalars (Mongoose-ObjectID, DateTimeISO and JSON) into defined OpenAPI Types.

Optimized Web-Hooks/Subscriptions

Since we want to scale our product, it must be possible for us to run different instances of SOFA-APIs on different pods in Kubernetes. In the case that a pod closes, we have to ensure, that the subscription/web-hook is persisted somehow, preferrable on redis or mongoDB, marked as "observed" by one instance, and "unobserved" when an instance is closing, so another instance can grab and "observe" it again. When building this I would also integrate the possibility to send a header-like object on subscribing, which authorizes the web-hook when sending the data back.

What do you think about these changes? Anything else to consider?
Of course these will be optional settings, so anything will work as usual when not including "my" custom settings.

And since this is one of my first open source contributions, I maybe need some guidance on how to do it:

As far as I know, I would go and create new branches per feature and commit the features and depending tests on them, maybe even with GitHub Codespaces. Afterwards I'll publish the two Pull Requests, explaining what I did.

And because this might be kind of urgent, what could I expect on how much time it would take for you guys to merge and publish these changes into any npm-installable build? I would start in around 3-4 weeks, take maybe one week, and it would be awesome to have it installable in something around 4 weeks after PR. Is that possible?

Best regards,

Paul

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions