SuffolkLITLab / EfileProxyServer

A proxy server that acts as an Efiling Service Provider, connecting guided interviews to Efiling Managers on Tyler Technologies implementation of ECF 4.0
https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/efiling/overview/
MIT License
3 stars 2 forks source link

Docs notes #145

Closed plocket closed 11 months ago

plocket commented 1 year ago

I'll keep editing this entry as I read more.

setup.md

There are various things I won't mention here as I assume the intended audience knows more about Docker than I do or can ask for help as they go through the process (since I can't actually go through the process).

Docker

Local

env

BryceStevenWilley commented 1 year ago

Great notes thanks! Writing responses in here, I'll have to think about which need to get documented, and which should be assumed knowledge:

Docker Main Engine: For the block of code, the whole first part isn't in the docker documentation at all, and that's a bit confusing.

It's definitely there; https://docs.docker.com/engine/install/ubuntu/#set-up-the-repository has the same commands, just with slightly different dependencies. I could remove that code block and only link the docker instructions, but I hate landing on a page that's an 11 minute read when all you need are 5 bash commands.

Docker compose docs say v1 isn't supported any longer.

Good point, I'm using v2 everywhere already, and just haven't updated these instructions yet.

Where is Suffolk.pfx that we're supposed to copy? I did find client_sign.properties.example.

Suffolk.pfx isn't here, that's the point; it's a secret file that can't go in the repo. That could be explained better.

Docassemble: I don't really understand where the value in the config file are supposed to come from

Also an unclear part; this was written up for the Louisiana courts to start a docassemble server alongside the proxy in the same docker compose group, but that hasn't gotten used at all yet. I'll re-write this to focus on the main use case of spinning up separately.

Am I understanding correctly that this repository isn't needed or used for a Docker install? For the Docker installation, is this repo an example of how the file system/directories are supposed to look after installation?

No, that is not correct; this repository is needed to build the docker image, which docker compose build does for you. Is there anything here that specifically gave you that impression, or was it from your experience with docassemble and docker?

EDIT: specifically add git clone to the docker instructions, was the cause of some of the confusion.

The instructions look a lot simpler than those above, so it makes me wonder if I'm missing something. For example, maybe I'm supposed to follow all the instructions above and then do this additionally.

You are correct; the local instructions only show how to run tests locally, not to start up the server, which would need a lot more instruction. Also, tbh, 70% of the above instructions are to install docker compose. It could be 2 links to each docker page. Maybe that's worth it.

EDIT: reword the number instructions at the front, and change this section to focus on unit testing specifically.

The example file is called env.example, which confused me because I know when I've made an env file, it's name has had a dot in front - .env

Yes, the actual file is .env, which is in the code in the docker-compose.yml file. I guess it could be .env.example. That would make the example hidden by default though, which I'm not sure I like. I'll add a comment in that file saying to use it to make .env .

plocket commented 1 year ago

tyler_codes.md

In general there are a lot of great details that I think be painful for people to have to learn on their own. As soon as I let go of the idea of getting data structures out of this (not sure why I expected that, since you explicitly said you were focusing on broad strokes), it became a lot more helpful.

I think there are various bits that can be refined, but I'll try to avoid those nits for now. That said, I can try to point out some typos that I think are fairly easy to fix.

Typos

Still in prgress!

"progress"

...but only depend of the location...

"of" -> "on", though I think "only" might be a typo too.

The case category is a broad select

"selection"?

...tables, Damage amount and procedure remedy,

These might need to be capitalized like the others.

Those are allowed usually have...whereas those that don't...

"Those that are"..."those that aren't".

commonly used on in IL...number, 99500

"used one"..."number, like 99500"

The top

On the last line, I'm not sure what you mean by hierarchy. I can tell they were listed alphabetically before, which is apparently not the same as the hierarchy. Is it the order in which they appear in the table? Is the hierarchy important on a practical level? If not, alphabetical seems good. If it is, then it's a bit hard to tell where they are in relation to each other just by looking at this. Still, maybe it's a helpful reference once a person is more familiar with that hierarchy.

System codes

I'm not sure why these headings are separate English words as opposed to the actual key name. It might be worth changing that.

System codes are technically not dependent on any specific court, and are available system wide.

Leaves me with a bit of confusion. You said every court's codes are different, but these aren't dependent on any specific court. How do those two facts co-exist? What does "system wide" mean? Do you mean Tyler will make these keys available no matter which court you're working with?

In practice, most of these codes can be changed on a per-court basis, so it's not wise to only get the system codes.

If they're changed for each court, then how are they system wide? And how are they "not dependent on any specific court" if they can be different for each court?

Country and State

A list of countries recognized by country fields. The State codes are available for a select number of countries: for IL these are only Canada, the US, and Mexico.

Had to read this several times. I think "recognized by country fields" was a big part of it. Maybe "A list of countries the court accepts"? Maybe "available for a select number of countries" -> "available for some countries".

Location Level Codes

Good info too!

Filing Specific Codes

Good chart! I don't know what the diamonds mean, but they don't seem crucial.

plocket commented 12 months ago

https.md

Using Let's Encrypt and ACME

Looks good! I don't know all the details, but if it checks out, this seems pretty clear to me.

(Not preferred) From a Certificate Authority

Seems clear enough for what it's meant to be. Seems like maybe you left out some things in this part, though, like part of the top sentence and maybe words that you wanted to accompany the links? There are more links like that in the section below too.

Our sources for the above are listed below, refer to them if you don't :

[https://stackoverflow.com/a/41469242/11416267] [https://www.tbs-certificates.co.uk/FAQ/en/ajouter-certificat-intermediaire-keystore-java.html] [https://community.datarobot.com/t5/data-prep/how-to-convert-crt-and-key-to-jks-file/td-p/6342]

Developer Notes: Using the cert in the CXF Server

This part is the most unclear to me. From my current level of understanding, I don't know what actions I would take next. I tried looking at the documentation at the links, but I continued to find those confusing. I think I'm not the audience for this section. Some questions that ran across my mind as I was reading through:

  1. Generally, what files in what directory am I supposed to be working in? Should I be making new files or editing files that are already there? Is all this stuff before or after I've done the instructions above?
  2. "The SpringBusFactory and Bus from the ServerConfig.xml need to be created in a static block in the Server class..." - I need to create these classes? They're in ServerConfig.xml, but I need to also to make them myself? Somewhere new? Do I just need to instantiate them in an existing Server class somewhere? If so, do I need to import new files/classes/methods/whatever to be able to do that?
  3. "...you need to set the CertPassword to the CallbackHandler before you create the factory..." - Where do I get CallbackHandler? Do I need to give the handler a callback? What factory? It seems weird to set a password to a function, but I can let that go.

I think I'd understand the rest of it if I knew where to look.

BryceStevenWilley commented 11 months ago

I've integrated most of these improvements. You're welcome to keep going and add more, just re-open the issue in that case!