Code Monkey home page Code Monkey logo

holo-auth's Introduction

holo-auth's People

Contributors

alastairong avatar br1ght0ne avatar jetttech avatar lukateras avatar peeech avatar robbiecarlton avatar zeeshan595 avatar zo-el avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

holo-auth's Issues

Fix HoloPort URL in challenge email

cc @alastairong @jarodholtz

I noticed that the following part of challenge template:

<a href="https://{{holochain_agent_id}}.holohost.net">{{holochain_agent_id}}.holohost.net</a>

Has been changed to:

<p>https://{{holochain_agent_id}}.holohost.net</p>

I'm not sure what the motivation is. I'd guess that it was made into text rather than a link because we previously had "Link not working?" text there, and that no longer applies, it's a completely different link to the one that is used as part of the button.

Additionally, I optimized the template so that the entire address would fit, and because https:// is now visible part of this line, it no longer fits:

Screenshot from 2020-01-30 09-19-49

Unless anyone minds otherwise, can I revert this back? If no, I'll just close this because this is way too minor to have an argument over.

Worker does case-sensitive match of email address against whitelist

A HoloPort owner was having trouble registering his email address because he started it with a capital letter, whereas the whitelist had it in all lower-case. I see that the worker doesn't do any normalisation for upper/lower case, and indeed it can only normalise the email address in the user's registration request, not the whitelisted email address.

Most email servers don't enforce case-sensitive addresses, so [email protected] should be functionally identical to [email protected] for 98% of servers on the planet. I feel that we should offer that same consistency.

But I'm not sure what to recommend, because you can't normalise the whitelisted email addresses -- it's a key in the K/V store, after all. We could require C/S staff to always input email addresses in lower-case; that might help, but it's error-prone.

CC @yegortimoshenko @alastairong

Write host IDs corresponding to each email address in Cloudflare KV store

CS has found the host ID information that we use to track “used” email address is very useful in their issue triaging efforts. Having a database that links host IDs to emails also provides options for future membership management / security / etc.

They’ve therefore requested this feature to be added before release so there aren’t any gaps in the database.

Log Postmark message ID on the client

Once #13 is merged, ID will always be available in POST /v1/challenge response, regardless of whether email is whitelisted or not. It would be useful to log it for support troubleshooting purposes.

Decide on interface for whitelist support

We can't read this data from Freshdesk anymore because their API rate limit is extremely low and Paul's holoport-authorizer was regularly hitting it, which was one of the things that were causing reliability issues. In addition to that, Freshdesk is a support system, and was not created for the purpose of being a source of truth for any data.

Let's decide on UI to offer support to add/remove whitelist entries. I'd recommend to start with updating whitelist KV store directly. Here's what it would take to add a new whitelist entry:

  1. Open holo-auth-server-whitelist KV store.
  2. Input email into "Key" field.
    Screenshot from 2020-01-28 05-19-48.png
  3. Press "Add entry".

To remove a whitelist entry:

  1. Choose an entry to remove.
  2. Press "..." icon.
  3. Click "Delete".
    Screenshot from 2020-01-28 05-22-06.png

cc @alastairong

Offer statistics dashboard

cc @jmday

Given data that is available in various APIs, it wouldn't be challenging to create a page that would show generalized stats like how many emails we've sent out (w/o counting in @holo.host registrations). If desirable, that could also be split by countries, or any other way you see fit.

This might not be urgent, but probably makes sense to discuss, especially considering that from what I gather I broke your statistics generation tools by switching to Postmark. Sorry about that.

Import HoloPort metadata into ZeroTier Central

It would be great to have meaningful name/description set to individual ZeroTier devices. #19 maps agent IDs to names and emails to descriptions, and once it's merged, this will happen on its own for new registrations.

We should import this data from Freshdesk to ZeroTier Central so that we would also keep track of old registrations the same way.

Branch protection missing

Github Actions are set up in such a way that changes merged into main and develop branch are auto-deployed to alphaNet and devNet respectively. For a minimum protection of our dev and production environment those two branches should be protected

Registering previously registered holoport creates stale entries in ZT Central

Whenever user is registering holoport with holochain_agent_id that has already been registered a new entry is created in ZT Central registry.

ZT Central is using address field as a unique key, but many services downstream use name field (which is populated with holochain_agent_id) as a unique key. Because process mentioned above creates multiple entries with the same name value the structure of database from the perspective of downstream services is corrupted.

So in the name of brotherhood with downstream consumers I am suggesting deleting all the old entries where name == holochain_agent_id while creating a new entry.

This would require making 1 more call after this line of a server code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.