Comments (7)
Blocked on USPS requirements and procurement of address validation provider (eg Smarty)
from test-at-home.
Dependent on #57
from test-at-home.
@porta-antiporta One thing we should specify is desired behavior if validation API is not working (just save? sanity checks on specific fields?)
from test-at-home.
@hartsick if validation API is not working then we should throw an error (if transient failure for one user) or stop taking orders (if complete outage). Sanity checks aren't sufficient as we have to confirm deliverability before saving an order.
The latter is undesirable, but we can't store an order without validating the address for deliverability as we are unsure if we can get a hold of the user in the future. So if we think validation API is not reliable, we should be thinking about redundancy/fallback options (offline USPS? pinging online USPS?).
from test-at-home.
Opened #60 seeing resiliency of API is likely pretty meaty in and of itself. (And likely not ready by Th).
from test-at-home.
Updated to AC reflect findings from #57
from test-at-home.
@porta-antiporta I think that this is done based on what we had discussed. We're still waiting on contract from Smarty, so using developer accounts with limited rates for time being. Here is the approach we went with for now:
Normal path
- Javascript check for deliverability. Requester sees different errors for no matches found for their search and if there is a match found but it's
dpv_match_code
ofD
. We could probably use better error messages for latter - On final submission, server-side check for deliverability. Requester will see same errors as described in Javascript above (though they shouldn't see them if they have Javascript enabled)
- We do not correct the address. Instead, we save what the requester input and save whatever came back from the server, so we can reference when sending to USPS.
API erroring path
If for some reason the API gives an error, we skip the address validation for that request (so, if front end call errored they may still get caught by server-side validation). If it is the backend validation that errored, we accept the request but mark that the address was not validated in the database (attribute address_validated
=false
). This should handle any intermittent errors, such as a temporarily unavailable service or a cooldown for exceeded rate limit.
Support for turning off Smarty
This is still in-progress (as part of #67), but right now we allow for turning off server-side validations entirely (so that we can deploy a parallel application). We still need to allow disabling front-end address validations.
from test-at-home.
Related Issues (20)
- Remove HHS logo HOT 1
- Remove HHS "We can do this" logo HOT 1
- Track successful submissions
- Create basic Runbook
- Support IE11
- Autocomplete a11y fixes
- Enable Smarty autocomplete
- Autocomplete #288 changes not seen HOT 2
- Try to cache-bust the translations file HOT 1
- Pull CircleCI scripts over to rails-template repo HOT 1
- Wrap-up tasks HOT 4
- Tear down production infrastructure across foundations
- Tear down staging infrastructure across foundations
- Add i18n translation infrastructure and translations for USWDS components to 18f rails template HOT 1
- Add sample New Relic configuration to 18f rails template HOT 1
- Consider: Add DAP to Rails template HOT 1
- Deploy demo app to sandbox environment with autocomplete enabled and data persistence disabled HOT 1
- To prevent potential confusion, add test site banner and noticeably disable form submission
- Add text to README that gives context to project and status
- Tear down demo application HOT 1
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 test-at-home.