Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy an "open to everyone" instance of Traction that is fully self-serve and automatically reset periodically #79

Closed
swcurran opened this issue Jun 2, 2023 · 6 comments

Comments

@swcurran
Copy link
Contributor

swcurran commented Jun 2, 2023

Given the success of using Traction at the AnonCreds Workshop, we should ASAP start operating an instance of Traction somewhere (BC Gov, Digital Ocean, etc.) that is fully self-serve (with a little data collection so we know who is using it), and with a scheduled reset every week or so to prevent "pseudo production" usage. With that in place, we re-orient all of our hands-on marketing calls-to-action and all of the developers tutorials to start there. The first call to action for devs in ACA-Py, AnonCreds, Traction and Bifold would be updated to this. As well, the traction process is easy enough that even business presentations could include a call to action to try it, using Traction.

Suggestions for the instance of Traction to deploy:

  • Schedule to restart periodically (e.g. every Sunday at midnight Pacific), with a message on at least the landing screen, and perhaps on all screens about when the next reset will happen, ideally with a "What this means" popup that we can tweak.
  • Tweaks to the "Create a Request Page" to get a new tenant. Flag to hide the "Name" and "mobile number" (those are specific to the production Traction use case). Ideally, add a drop down "Country" to collect self-attested data (not crucial immediately).
  • Prior to the reset, call the InnKeeper API to retrieve and save a list of email addresses and (if available) countries of people that used the instance so we can review the data as needed. This list will be the metric for monitoring engagement, and understanding the reach of Aries/AnonCreds/Traction in the wild. Perhaps save just the domain of the email address to prevent collecting PII.
  • Add another self-serve option -- emailing the Wallet ID and Key. This is an alternative to displaying immediately (as we did with the Workshop), and manually InnKeeper approval. Not particularly secure to email the Key, but given the key is for a time-limited, demo only environment, it is not a concern.
  • Grab a suitable, neutral domain name for the service, e.g. "tryvcs.io" or "trytraction.io"

I think that is sufficient to get started. Iterating on the UI for the instance, adding a landing page and so on can follow easily enough.

@swcurran
Copy link
Contributor Author

swcurran commented Jun 2, 2023

Other possible domain names -- "try-aries.io" and "try-aries.vc". Fun stuff!

@esune
Copy link
Member

esune commented Jun 5, 2023

A couple of thoughts/questions:

  • The clean-up and redeploy of the instance could be completed with a schedule-based GitHub Action running uninstall/install commands for the Helm chart.
    • Helm Chart Refresh traction#633 should be completed by the time we get there, as it will help clean-up CI/CD
    • Extra steps may be required to remove PVCs and secrets, depending on chart flags.
  • Rather than one-off flags on the reservation page, it could be wise to review and redesign it to be configurable - minus required fields such as email address which would always be requested.
  • Integration with OIDC (i.e.: GitHub) to request a tenant is recommended: this would limit the amount of fake/unreliable data entered in the forms.
  • Where would the data be sent/collected? We will want to automate this as much as possible.
    • An idea could be to add Matomo to the Tenant UI - or at least the reservations page - as a configurable setting (i.e.: not required for deployment), rather than developing a custom API just for this purpose.
  • What is the scenario where we would manually approve and email credentials? We wouldn't be able to run both auto/non-auto at the same time and this option seems like it could generate significant overhead given the potential traffic to the service.

@esune
Copy link
Member

esune commented Jun 5, 2023

Other possible domain names -- "try-aries.io" and "try-aries.vc". Fun stuff!

Throwing aries-playground.io and aries-playground.vc in the mix as well 😉

@swcurran
Copy link
Contributor Author

swcurran commented Jun 5, 2023

I suggest that we take this off the BC Gov plate. I’ll find someone else in the community to run it — likely my own company to start, to make sure it is vendor-neutral.

@esune
Copy link
Member

esune commented Jun 15, 2023

@swcurran can we close the issue, based on the progress/discussions on this topic?

@swcurran
Copy link
Contributor Author

Yes. I’d like to know when the features are available so that others can host such an instance — notably when a new tenant automagically is an Issuer (no manual intervention) and when we can tune the request for a tenant can be configured (or documented about what to change it for a specific instance).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants