Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 16:52:19

wsl --install --distribution Debian

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 17:15:12

https://cloud.google.com/docs/authentication/application-default-credentials

Google Cloud
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-25 16:05:40

Those lists are a few months old but are a stating point

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-25 18:32:10

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

Tyson Green (tgreen@shield-legal.com)
2025-06-26 13:06:41

When you get a chance, " 403 Permission 'secretmanager.versions.access' denied for resource 'projects/shield-legal-tools/secrets/client_secret/versions/latest'" is stopping me from launching the internal-tools-site.

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-26 13:07:13

fixed

:thank_you: Tyson Green
Tyson Green (tgreen@shield-legal.com)
2025-06-26 13:30:44

Getting Closer: InsufficientPrivilegeError: permission denied for table lead

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-26 13:37:06

try now?

Tyson Green (tgreen@shield-legal.com)
2025-06-26 13:39:39

:excellent:

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-27 15:36:33
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-27 15:37:07

has not been updated in 4 years but still works great

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-27 15:50:49

This will have to wait for your PR converting to uv before it will work https://github.com/shield-legal/internal-tools-site/actions/runs/15935694087/job/44954890522?pr=11

👍 Tyson Green
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-27 15:50:58

This will have to wait for your PR converting to uv before it will work https://github.com/shield-legal/internal-tools-site/actions/runs/15935694087/job/44954890522?pr=11

Tyson Green (tgreen@shield-legal.com)
2025-06-30 12:00:10

https://ahopkins.github.io/mayim/

ahopkins.github.io
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-02 17:53:23

Here is that common library I was telling you I wanted to make. It does not currently have any async tools (from the website) https://github.com/shield-legal/sl-common-utilities

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 14:43:07
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-14 15:17:27

Fix for Chris's transcription chat not session/user based. Do you also want to review? https://github.com/shield-legal/internal-tools-site/pull/14

✅ Tyson Green
Tyson Green (tgreen@shield-legal.com)
2025-07-14 15:22:40

LGTM

Tyson Green (tgreen@shield-legal.com)
2025-07-18 12:22:53

Sorry I missed stand up. Kids forgot lunch and got errands on the way.

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-23 14:23:41

I think the problem with the CI/CD is the host value. Before it was 0.0.0.0 which means all interfaces, in your changes it is localhost which only allows connections from the local machine. This normally fails the health check which comes from an external system

Tyson Green (tgreen@shield-legal.com)
2025-07-23 14:49:28

Ah, I'll update the prod config.

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-04 17:44:29

How familiar are you with regulations / compliance?

Tyson Green (tgreen@shield-legal.com)
2025-08-04 17:46:22

I've dealt with HIPAA often. Which regulation/compliance is needed?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-04 17:48:41

Nothing ATM but possibly soon

👍 Tyson Green
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-05 13:26:35

To go with my messages yesterday, here is what @James Turner wrote up about 2 months ago, tab GDPR Standards . He may have more notes, would have to dig: https://docs.google.com/spreadsheets/d/1FT7jBenta_98vq8GOV3xZ1FpYXsRi8gaZJVdVOtL-Gc/edit?gid=0#gid=0

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-08 13:52:48

You good?

Tyson Green (tgreen@shield-legal.com)
2025-08-08 13:58:58

Well, damn. I didn't send the note last night. Kids "meet the teacher" was this morning. It was poorly organized, so we just finished, took kids to lunch. Wrapping up now. Sorry for theno call no show.

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-11 11:49:47

Do we need a migration log table for Chris's table? CREATE TABLE IF NOT EXISTS migration_log ( id SERIAL PRIMARY KEY, migration_name VARCHAR(255) NOT NULL, applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, rolled_back_at TIMESTAMP NULL, status VARCHAR(50) DEFAULT 'applied' );

Tyson Green (tgreen@shield-legal.com)
2025-08-11 11:55:54

Being it is the only one, it doesn't do anything, but it can be used as a template.

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-11 11:57:43

I was making edits to his migration script... which schema should that log live in then? I am making a new schema ai_tools for the stuff in his migration script

Tyson Green (tgreen@shield-legal.com)
2025-08-11 12:08:03

Public or internal-tools

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-13 11:26:46

external_id like '%:%'

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-15 16:48:45

does this make more sense def split_name(name: str) -> tuple[str, str, str, str, str]: first, **middle, last = name.split(' ') prefix, suffix = '', '' if middle: if '.' in first or (len(first) < 3 and len(middle) > 1): prefix = first first = middle.pop(0) if '.' in last or (len(last) < 3 and len(middle) > 1): suffix = last last = middle.pop(-1) return prefix, first, ' '.join(middle), last, suffix than def split_name(name: str) -> tuple[str, str, str, str, str]: first, **middle, last = name.split(' ') prefix, suffix = '', '' if '.' in first and middle: prefix = first first = middle.pop(0) if '.' in last and middle: suffix = last last = middle.pop(-1) return prefix, first, ' '.join(middle), last, suffix

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-15 16:51:47

does this make more sense def split_name(name: str) -> tuple[str, str, str, str, str]: first, **middle, last = name.split(' ') prefix, suffix = '', '' if middle: if '.' in first or (len(first) < 3 and len(middle) > 1): prefix = first first = middle.pop(0) if '.' in last or (len(last) < 3 and len(middle) > 1): suffix = last last = middle.pop(-1) return prefix, first, ' '.join(middle), last, suffix than def split_name(name: str) -> tuple[str, str, str, str, str]: first, **middle, last = name.split(' ') prefix, suffix = '', '' if '.' in first and middle: prefix = first first = middle.pop(0) if '.' in last and middle: suffix = last last = middle.pop(-1) return prefix, first, ' '.join(middle), last, suffix

Tyson Green (tgreen@shield-legal.com)
2025-08-15 17:48:07

This is the permission I am missing to see the buckets.

Tyson Green (tgreen@shield-legal.com)
2025-08-15 17:52:47

Copying the files is the last step. I believe I have the rest of the data imported, barring the 'destinations' that would be from other tables, not provided data.

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-15 18:01:52

https://console.cloud.google.com/storage/browser?inv=1&invt=Ab5lRQ&project=integrations-tip&prefix=&forceOnBucketsSortingFiltering=true&bucketType=live|https://console.cloud.google.com/storage/browser?inv=1&invt=Ab5lRQ&project=integrations-t[…]fix=&forceOnBucketsSortingFiltering=true&bucketType=live

accounts.google.com
Tyson Green (tgreen@shield-legal.com)
2025-08-15 20:07:30

Files copied, 13k lines.We can work on the rest Monday.

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 13:47:34

*Thread Reply:* I think we should just leave the id column NULL and let the sequence generate it

Tyson Green (tgreen@shield-legal.com)
2025-08-18 14:21:57

*Thread Reply:*

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-19 11:13:53

*Thread Reply:* spot checking this seems fine

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 13:47:11

If you wanted to see what I have built: https://github.com/dustinsurwill/LiteSpeed

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 15:17:06

Maybe: https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling#pulling

Google Cloud
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-19 13:18:36

ID fields

  1. for Meadow / Crump / Case Works (Smart Advocate): result
  2. Napoli (1855, 1847) Do not split into rows: SYSID
  3. Bailey Glasser (fix destination, some are lowercase without space): data id
  4. Forbidden is not a valid external_id - 682395
  5. LegaFi (1877) Split into 2 rows (will have to modify existing rows & code to match, so maybe do not split for now?) destination "LegaFiHeroku" & "LegaFiFileVine": case sourceId & personId native
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-20 14:03:10

Opinion on the code? To solve > 1. The guardian email is showing up in the injured party email field. If the injured party is a minor and a guardian exists, both the phone and email should be on the guardian only. https://github.com/shield-legal/gcp-integrations/pull/248/commits/c7a14a6b43b06444058107a00408c6e79d0be1c8

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-27 12:03:35

There is also a schema that is not in the migrations folder called ring_central with one table called call_log

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-28 15:01:49

now that its cleared up...

🤣 Tyson Green
Tyson Green (tgreen@shield-legal.com)
2025-08-29 17:08:17