This commit is contained in:
Correl Roush 2021-12-01 17:28:09 -05:00
parent 9feb79a954
commit 79af989226
13 changed files with 890 additions and 95 deletions

View file

@ -37,31 +37,6 @@ personal differences of sexual orientation or gender identity. We need protect
with special care the anonymity of every S.L.A.A. member. Additionally we try to
avoid drawing undue attention to S.L.A.A. as a whole from the public media.
** The Twelve Steps of S.L.A.A.
1. We admitted we were powerless over sex and love addiction - that our lives
had become unmanageable.
2. Came to believe that a Power greater than ourselves could restore us to
sanity.
3. Made a decision to turn our will and our lives over to the care of God as we
understood God.
4. Made a searching and fearless moral inventory of ourselves.
5. Admitted to God, to ourselves and to another human being the exact nature of
our wrongs.
6. Were entirely ready to have God remove all these defects of character.
7. Humbly asked God to remove our shortcomings.
8. Made a list of all persons we had harmed, and became willing to make amends
to them all.
9. Made direct amends to such people wherever possible, except when to do so
would injure them or others.
10. Continued to take personal inventory and when we were wrong promptly
admitted it.
11. Sought through prayer and meditation to improve our conscious contact with a
Power greater than ourselves, praying only for knowledge of God's will for
us and the power to carry that out.
12. Having had a spiritual awakening as the result of these steps, we tried to
carry this message to sex and love addicts and to practice these principles
in all areas of our lives.
** Characteristics of Sex and Love Addiction
1. Having few healthy boundaries, we become sexually involved with and/or
emotionally attached to people without knowing them.
@ -90,6 +65,31 @@ avoid drawing undue attention to S.L.A.A. as a whole from the public media.
12. We assign magical qualities to others. We idealize and pursue them, then
blame them for not fulfilling our fantasies and expectations.
** The Twelve Steps of S.L.A.A.
1. We admitted we were powerless over sex and love addiction - that our lives
had become unmanageable.
2. Came to believe that a Power greater than ourselves could restore us to
sanity.
3. Made a decision to turn our will and our lives over to the care of God as we
understood God.
4. Made a searching and fearless moral inventory of ourselves.
5. Admitted to God, to ourselves and to another human being the exact nature of
our wrongs.
6. Were entirely ready to have God remove all these defects of character.
7. Humbly asked God to remove our shortcomings.
8. Made a list of all persons we had harmed, and became willing to make amends
to them all.
9. Made direct amends to such people wherever possible, except when to do so
would injure them or others.
10. Continued to take personal inventory and when we were wrong promptly
admitted it.
11. Sought through prayer and meditation to improve our conscious contact with a
Power greater than ourselves, praying only for knowledge of God's will for
us and the power to carry that out.
12. Having had a spiritual awakening as the result of these steps, we tried to
carry this message to sex and love addicts and to practice these principles
in all areas of our lives.
** The Twelve Traditions of S.L.A.A.
1. Our common welfare should come first; personal recovery depends upon S.L.A.A.
unity.
@ -98,7 +98,7 @@ avoid drawing undue attention to S.L.A.A. as a whole from the public media.
trusted servants; they do not govern.
3. The only requirement for S.L.A.A. membership is a desire to stop living out a
pattern of sex and love addiction. Any two or more persons gathered together
for mutual aid in recovering from sex and love addiction may call themselves
B for mutual aid in recovering from sex and love addiction may call themselves
an S.L.A.A. group, provided that as a group they have no other affiliation.
4. Each group should be autonomous except in matters affecting other groups or
S.L.A.A. as a whole.

View file

@ -0,0 +1,22 @@
:PROPERTIES:
:ID: 156e16da-f160-48ad-b0a7-75ff44fdf607
:END:
#+title: Home Intercom Replacement
#+filetags: :project:
* Home automation controls
- Interface with Home Assistant to control lights and miscellaneous sensors.
* Audio and video calling
- Consider leveraging [[https://github.com/jitsi/jitsi-meet][Jitsi Meet]], an open-source video conferencing system.
* Customizeable user interface
** Themeable
Might be nice to build an LCARS-style interface, but other themes could be
** Modular
I'd like to have one of these in my apartment, not just at Stephanie's house.
This means different sensors, appliances, and functionality may be present at
any particular installation point, and should be easy to configure.
* Reference projects
** [[https://www.instructables.com/Flush-Wall-Mounted-Raspberry-Pi-Touchscreen/][Flush Wall-Mounted Raspberry Pi Touchscreen]]
Covers mounting a device into a wall and powering it via [[id:6de2329b-bdba-45ff-bfda-d4df5c2879c8][PoE]] or 120VAC.
** [[https://hackaday.com/2020/04/27/a-raspberry-pi-video-intercom-system/][A Raspberry Pi Video Intercom System]]
Uses Jitsi to power video calling from a raspberry pi powered doorbell intercom
system.

View file

@ -0,0 +1,5 @@
:PROPERTIES:
:ID: 6de2329b-bdba-45ff-bfda-d4df5c2879c8
:ROAM_ALIASES: PoE
:END:
#+title: Power Over Ethernet

View file

@ -89,7 +89,15 @@ and segment emailing.
| Milestone 3: Add new search features | |
#+END:
** Search Centralization
** A Dedicated Service for Subscriber Search
:PROPERTIES:
:JIRA_ID: CCPANEL-10169
:END:
Create a dedicated, publicly exposed service for performing searches on
subscribers using subscriber and analytics criteria. The goal of this project is
to replace the current implementation from sites and in the broadcast segment
service.
*** Expose search inputs backed with the existing database
:PROPERTIES:
:Effort: 2d
@ -111,6 +119,7 @@ https://jira.aweber.io/browse/CCPANEL-7077
*** Define the search result format
:PROPERTIES:
:Effort: 1d
:JIRA_ID: CCPANEL-10440
:END:
https://xd.adobe.com/view/ae8fb2b2-c039-4e88-8ade-ff2562a8c8cf-fbdc/screen/c03f09c7-187e-4a6f-8b8c-571d131daee1/ (ignore engagement column)
@ -124,6 +133,15 @@ https://xd.adobe.com/view/ae8fb2b2-c039-4e88-8ade-ff2562a8c8cf-fbdc/screen/c03f0
:PROPERTIES:
:Effort: 5d
:END:
**** Perform search using text comparisons
- Is / Is Not
- Contains / Does not contain
- Starts with / Does not start with
- Ends with / Does not end with
**** Perform search using numeric comparisons
**** Perform search using date ranges
**** Perform search using message and link IDs
**** Perform search using tag sets
*** Perform search using legacy segment ID
:PROPERTIES:
:Effort: 3d
@ -134,8 +152,10 @@ https://xd.adobe.com/view/ae8fb2b2-c039-4e88-8ade-ff2562a8c8cf-fbdc/screen/c03f0
:Effort: 3d
:END:
- Translate a DSL search into a legacy stored segment
** Migrate to an updated schema
** Migrate to new search service
*** Migrate to an updated schema
** Centralizing Subscriber Search
Applications making use of subscriber search will be updated to use the new
dedicated service, eliminating multiple search implementations.
*** Create new subscriber management React application
*** Update broadcast-segment to use new search service
** Milestone 3: Add new search features

View file

@ -2,7 +2,14 @@
:ID: c45881de-46f2-4f76-9579-063626c5956c
:END:
#+title: Analytics View Service
The Analytics View Service provides a collection of report endpoints. These
endpoints handle querying the analytics databases or, in the longer term,
exposing efficient materialized data views.
* Plan
- Parent ticket :: [[https://jira.aweber.io/browse/CCPANEL-11781][CCPANEL-11781]]
:PROPERTIES:
:COLUMNS: %40ITEM %Effort{:}
:END:
@ -50,19 +57,21 @@
** Create endpoints for existing reports
- Based on the endpoints provided in the [[id:3ddc4e32-932f-4748-bfe9-7025d4d6b352][Report API Controller]]
- Are all of these report endpoints in use?
*** Opens
*** Opens over time
:PROPERTIES:
:Effort: 1d
:END:
- List
- Account-wide
- By list
- Time
- Last 30 days
- 30 day range
#+attr_confluence: :as-table t
- Name :: daily-opens
- Parameters ::
- List (default: all lists)
- Date range (default: last 30 days)
- Report API controller endpoints ::
- opens_all_range
- opens_list_range
#+caption: opens_all
#+begin_example
#+caption: Sample response
#+begin_src json
{
"2021-11-02T00:00:00Z": {
"broadcasts": 2499,
@ -83,20 +92,23 @@
"total": 18170
}
}
#+end_example
*** Clicks
#+end_src
*** Clicks over time
:PROPERTIES:
:Effort: 1d
:END:
- List
- Account-wide
- By list
- Time
- Last 30 days
- 30 day range
#+attr_confluence: :as-table t
- Name :: daily-clicks
- Parameters ::
- List (default: all lists)
- Date range (default: last 30 days)
- Report API controller endpoints ::
- clicks_all_range
- clicks_list_range
#+caption: clicks_all
#+begin_example
#+caption: Sample response
#+begin_src json
{
"2021-11-02T00:00:00Z": {
"broadcasts": 105,
@ -117,18 +129,22 @@
"total": 589
}
}
#+end_example
*** Sales
#+end_src
*** Sales over time (events)
:PROPERTIES:
:Effort: 1d
:END:
- Time
- Last 30 days
- 30 day range
- Currency
#+attr_confluence: :as-table t
- Name :: sale-events
- Parameters ::
- Date range (default: last 30 days)
- Currency (default: USD)
- Report API controller endpoints ::
- sales_tracked_events
#+caption: sales_tracked_events
#+begin_example
#+caption: Sample response
#+begin_src json
[
{
"time": "2021-11-02 09:37:36-04",
@ -191,17 +207,19 @@
"email": "jeremy@jeremy-quick.com"
}
]
#+end_example
*** Sales Totals
#+end_src
*** Sales over time (summary)
:PROPERTIES:
:Effort: 1d
:END:
- Time
- Last 60 days
- 60 day range
#+attr_confluence: :as-table t
- Name :: daily-sales
- Parameters ::
- Date range (default: last 60 days)
- Currency (default: USD)
#+caption: sales_tracked_summary
#+begin_example
#+caption: Sample response
#+begin_src json
{
"2021-11-02T00:00:00Z": {
"broadcast": 0,
@ -225,60 +243,240 @@
"total": 38
}
}
#+end_example
#+end_src
*** Lifetime Sale Totals
#+attr_confluence: :as-table t
- Name :: sale-totals
- Parameters ::
- Currency (default: USD)
- Report API controller endpoints ::
- sales_tracked_total
#+caption: Sample response
#+begin_src json
{
"count": 94924,
"pagehits": 1820122.79,
"revenue": 2181498.96
}
#+end_src
*** Sale Currencies
:PROPERTIES:
:Effort: 1d
:END:
- Time
- 60 day range
- All time
#+caption: sales_tracked_currencies
#+begin_example
["USD"]
#+end_example
*** Sale Events
:PROPERTIES:
:Effort: 1d
:END:
- Time
- Last 30 days
- 30 day range
- Currency
- Type
*** Lifetime Sales
:PROPERTIES:
:Effort: 1d
:END:
- Currency
#+attr_confluence: :as-table t
- Name :: sale-currencies
- Parameters ::
- Date range (default: last 60 days)
- Report API controller endpoints ::
- sales_tracked_currencies
#+caption: Sample response
#+begin_src json
["USD", "CAD"]
#+end_src
*** Pending Broadcasts
:PROPERTIES:
:Effort: 1d
:END:
#+attr_confluence: :as-table t
- Name :: pending-broadcasts
- Parameters ::
- List (default: all lists)
- Report API controller endpoints ::
- broadcasts_pending
#+caption: Sample response
#+begin_src json
[
{
"unit_id": "3854",
"send_date": "01/01/25 12:00am",
"broadcast_id": "1800243",
"subject": "Scheduled Broadcast Test",
"status": "Queue",
"percent_done": "0",
"mesg_encoding": "utf-8",
"campaign_id": "1802217",
"unit": "awlist3854",
"orig_send_date": "2025-01-01 00:00:00-05",
"friendly_list_name": "Fluff Cafe",
"id": "1802217",
"list_id": "3854",
"account_id": "778",
"campaign_type_id": "b",
"uses_block_editor": "t"
}
]
#+end_src
*** Completed Broadcasts
:PROPERTIES:
:Effort: 1d
:END:
- List
- Account-wide
- By list
- Time
- All time
- 30 day range
#+attr_confluence: :as-table t
- Name :: completed-broadcasts
- Parameters ::
- List (default: all lists)
- Report API controller endpoints ::
- broadcasts_completed
- broadcasts_completed_all
#+caption: Sample response
#+begin_src json
[
{
"a_id": "778",
"broadcast_id": "1258855",
"for_sent_date": "08/14/20 03:41 PM",
"track_click_rate": "1",
"unit_id": "3854",
"assassin_pts": "0",
"mesg_type": "HTML",
"mesg_encoding": "utf-8",
"sent_date": "2020-08-14 15:41:05.24086-04",
"num_emailed": "1",
"num_undeliv": 0,
"num_opened": 0,
"num_attachments": 0,
"num_complaints": 0,
"subject": "Testing a bad segment",
"created_date": "2020-08-14 15:38:57.59072-04",
"status": "Sent Composer",
"lead_view_id": "42564",
"unit": "awlist3854",
"pct_opened": "0",
"show_opens_warning": true,
"pct_undeliv": "0",
"total_clicks": 0,
"clicks_analytics_type": "premium",
"pct_click": "0",
"pct_complaints": "0",
"segment_id": "42564",
"extra_lists": "",
"excluded_lists": "",
"extra_lists_count": 0,
"excluded_lists_count": 0,
"friendly_list_name": "Fluff Cafe"
},
{
"a_id": "778",
"broadcast_id": "1243650",
"for_sent_date": "08/05/20 06:33 PM",
"track_click_rate": "1",
"unit_id": "3854",
"assassin_pts": "0",
"mesg_type": "Text/HTML",
"mesg_encoding": "utf-8",
"sent_date": "2020-08-05 18:33:48.638875-04",
"num_emailed": "27",
"num_undeliv": 0,
"num_opened": 0,
"num_attachments": 0,
"num_complaints": 0,
"subject": "Buggssss 🐛🐛🐛🐛🐛🐛🐛",
"created_date": "2020-08-05 18:31:10.567418-04",
"status": "Sent Composer",
"lead_view_id": "8",
"unit": "awlist3854",
"pct_opened": "0",
"show_opens_warning": true,
"pct_undeliv": "0",
"total_clicks": 0,
"clicks_analytics_type": "premium",
"pct_click": "0",
"pct_complaints": "0",
"segment_id": "8",
"extra_lists": "",
"excluded_lists": "",
"extra_lists_count": 0,
"excluded_lists_count": 0,
"friendly_list_name": "Fluff Cafe"
}
]
#+end_src
*** Cities, States, and Countries
:PROPERTIES:
:Effort: 1d
:END:
#+attr_confluence: :as-table t
- Name :: subscribers-by-location
- Parameters ::
- List (default: all lists)
- Report API controller endpoints ::
- city_state_countries
#+caption: Sample response
#+begin_src json
[
{
"country": null,
"state": null,
"city": null,
"pending": 0,
"unsubscribed": 457262,
"subscribed": 276245,
"total": 733507
},
{
"country": "US",
"state": "PA",
"city": "Newtown",
"pending": 0,
"unsubscribed": 279304,
"subscribed": 3236,
"total": 282540
},
{
"country": "US",
"state": null,
"city": null,
"pending": 0,
"unsubscribed": 109074,
"subscribed": 2456,
"total": 111530
},
{
"country": "US",
"state": "PA",
"city": "Philadelphia",
"pending": 0,
"unsubscribed": 48485,
"subscribed": 657,
"total": 49142
},
{
"country": "US",
"state": "PA",
"city": "Huntingdon Valley",
"pending": 0,
"unsubscribed": 4839,
"subscribed": 90,
"total": 4929
},
{
"country": "VN",
"state": "64",
"city": "Hanoi",
"pending": 0,
"unsubscribed": 204,
"subscribed": 2,
"total": 206
},
{
"country": "VN",
"state": "65",
"city": "Ho Chi Minh City",
"pending": 0,
"unsubscribed": 176,
"subscribed": 1,
"total": 177
}
]
#+end_src
*** Followups
:PROPERTIES:
:Effort: 1d
:END:
*** New Subscribers Daily
:PROPERTIES:
:Effort: 1d

View file

@ -4,5 +4,36 @@
:END:
#+title: Report API Controller
Contains JSON report endpoints used by the [[id:fab0cf8f-7c54-4848-882b-dba5e087760d][Redesigned Reports]]. These make use of
the App and Analytics databases.
Contains JSON report endpoints used by the [[id:fab0cf8f-7c54-4848-882b-dba5e087760d][Redesigned Reports]] and the [[id:0d24c57a-fd56-43b0-8209-497320bf79f7][Dashboard]].
These make use of the App and Analytics databases.
| Endpoint | Description | Report | Dashboard |
|--------------------------------------+-----------------+-----------------------+----------------------|
| opens_all | | | |
| opens_all_range | All lists | Opens over time | |
| opens | | | |
| opens_list_range | Current list | Opens over time | |
| clicks_all | | | |
| clicks_all_range | All lists | Clicks over time | |
| clicks | | | |
| clicks_list_range | Current list | Clicks over time | |
| sales_tracked_all | | | |
| sales_tracked_all_range | | | |
| sales_tracked_summary | | Sales over time | |
| sales_tracked_currencies | | Sales over time | Sales |
| sales_tracked_events | | Sales over time | |
| sales_tracked_total | Lifetime totals | | Sales |
| broadcasts_pending | | | Scheduled Broadcasts |
| broadcasts_completed | Current list | Broadcast totals | |
| broadcasts_completed_all | All lists | | Sent Broadcasts |
| broadcasts_completed_range | | | |
| city_state_countries | | Location totals | |
| followups | | Followup totals | |
| new_subscribers_daily | | New subscribers added | |
| new_subscribers_weekly | | New subscribers added | |
| new_subscribers_monthly | | New subscribers added | |
| subscriber_totals_daily | | Subscriber totals | |
| subscriber_totals_weekly | | Subscriber totals | |
| subscriber_totals_monthly | | Subscriber totals | |
| account_subscriber_totals | | | People |
| account_subscriber_totals_past_month | | | People |

View file

@ -0,0 +1,4 @@
:PROPERTIES:
:ID: 1463cf0a-e2b2-490c-b1b3-40249b483ca8
:END:
#+title: Bulk Job Service

7
daily/2021-11-05.org Normal file
View file

@ -0,0 +1,7 @@
:PROPERTIES:
:ID: ae807adb-2f19-46d1-b2aa-f2541947d26c
:END:
#+title: 2021-11-05
* [[id:1463cf0a-e2b2-490c-b1b3-40249b483ca8][Bulk-Action]] Consumers ACP
- New ACP :: https://confluence.aweber.io/display/AR/Bulk-Task+Consumers+ACP
- Old Spec :: https://confluence.aweber.io/display/~robink/Bulk+Operation+Service+Spec

65
daily/2021-11-08.org Normal file
View file

@ -0,0 +1,65 @@
:PROPERTIES:
:ID: 305b4103-a9a8-492a-8431-c203f57d2bd0
:END:
#+title: 2021-11-08
* Planning future backend work
Meeting with Scott and Eric.
#+caption: Last week
| Number clicked column to account backup | 4h |
| CSLead Tickets | EOW |
| Tagbox upgrades | EOW |
| Remove outbound tag sanitization | EOW |
| Analytics search testing | ??? |
| OpenAPI newline pattern validation | Tomorrow |
| Start on Search Service | Next week |
#+caption: This week
| CSLead Tickets | Today |
| Analytics View | This week (Eric) |
| Search | This week (Correl) |
| Verifications | Tech Initiatives sync |
* [[id:1463cf0a-e2b2-490c-b1b3-40249b483ca8][Bulk Job]] ACP discussion
- Could deleting duplicate subscribers across lists belong in the Control Panel?
- Why would we want to pause a job?
- More likely to be an internal issue, pausing processing to relieve system
pressure
- Differences between customer-initiated jobs and internally (PSE/ASE) initiated
jobs
- Any future plans for bulk actions in the CP?
- Deleting duplicate subscribers across lists csreq?
- Nothing prioritized right now.
* Searching any/all tags with quotation marks
https://jira.aweber.io/browse/CCPANEL-10726
The search code is escaping the characters, but string literals appear to handle
escaping differently between different versions of PostgreSQL. Versions 9.1 and
above default the =standard_conforming_strings= setting to =on=, which permits
escaping. The AppDB PostgreSQL version in staging and production are on 9.0.23,
and have the setting turned to =off=.
Because of how search is currently built, in order to support searching on
multiple values, these values are being encoded as [[https://www.postgresql.org/docs/9.1/arrays.html#ARRAYS-IO][string array literals]]. The
additional escaping needed for this format are running afoul of PostgreSQL's
string handling:
With standard conforming strings on
#+begin_example
postgres=# select '{"foo","bar","\"baz"}'::text[];
text
-------------------
{foo,bar,"\"baz"}
(1 row)
#+end_example
With standard conforming strings off
#+begin_example
app-txn=> select '{"foo","bar","\"baz"}'::text[];
WARNING: nonstandard use of escape in a string literal
LINE 1: select '{"foo","bar","\"baz"}'::text[];
^
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
ERROR: malformed array literal: "{"foo","bar",""baz"}"
LINE 1: select '{"foo","bar","\"baz"}'::text[];
^
#+end_example

28
daily/2021-11-09.org Normal file
View file

@ -0,0 +1,28 @@
:PROPERTIES:
:ID: 97d08dbd-dcab-4776-8450-ff9cdeb7e16b
:END:
#+title: 2021-11-09
* Releasing tagging changes
Releasing the removal of outbound [[id:2ba04972-f498-41c2-970e-a64c7f3f1c3b][Data sanitization]] from the [[id:7e503917-646f-4275-aab9-3a125b99cbfd][Tagging Service]],
addressing the CSLead issue ([[https://jira.aweber.io/browse/CCPANEL-11673][CCPANEL-11673]])that arose from implementing it as a
stopgap as we worked to close the UI sanitization issue.
** CSLead questionairre
The fixes for this issue have been released to production.
- *What was broken? be specific also indicate what was not broken* :: The
tagging service was temporarily patched to sanitize returned tag labels for
HTML display, resulting in tags containing sensitive characters to be
misrepresented (e.g. =this&that= would be returned as =this&ampthat=)
- *When was it broken? start and end date/time* :: Since the tagging service
started sanitizing returned tag labels on September 9th, 2021.
- *What did you do to fix the problem? be specific* :: A UI sanitization fix was
propogated to correct the root issue (CCPANEL-11654), and the sanitization was
removed from the tagging service.
- *How many customers did it likely impact?* :: All customers using tags with
characters typically escaped as HTML entities (e.g., =<=, =>=, =&=)
- *Is the issue automatically fixed for all customers now? Why or why not?* :: Yes.
Tags will no longer be misrepresented in autocompletion for searches and
tagging.
- *Does the customer or CS need to manually do something to fix their account? Customers taking actions should always be a last resort.* :: No.
- *Should a new monitoring check, metric, or test be created to prevent this from happening again? Why or why not?* :: No;
the system was working as intended.

6
daily/2021-11-26.org Normal file
View file

@ -0,0 +1,6 @@
:PROPERTIES:
:ID: 525d38a7-2b7b-4ad8-902f-80d000e95b2c
:END:
#+title: 2021-11-26
* List Service Review

405
daily/2021-11-30.org Normal file
View file

@ -0,0 +1,405 @@
:PROPERTIES:
:ID: 04ab4d9c-b155-404f-a914-61476cb1ba94
:END:
#+title: 2021-11-30
* Import issues
https://admin.aweber.io/account/imports/440922
#+begin_quote
Ok, I'm running subscriber search for the different date ranges in subscriber
management to see what we get back to see if there are any particular import
days that don't match up in subscriber management.
10/12/2021 - 619 :white_check_mark:
10/19/2021 - 17 :white_check_mark:
10/24/2021 - 16 :white_check_mark:
11/02/2021 - 0 :x: (expecting 13)
11/03/2021 - 0 :x: (expecting 21)
11/04/2021 - 0 :x: (expecting 65)
11/05/2021 - 0 :x: (expecting 67)
11/09/2021 - 146 :x: (expecting 156)
11/16/2021 - 0 :x: (expecting 70)
11/21/2021 - 0 :x: (expecting 98)
11/28/2021 - 0 :x: (expecting 214)
Total: 798
#+end_quote
#+HEADER: :cache yes :eval no-export
#+HEADER: :engine postgresql
#+HEADER: :dbhost app.service.production.consul
#+HEADER: :dbuser cp_aweber
#+HEADER: :database app-txn
#+HEADER: :dbpassword mgoQKqV6ztMap8TvL9UuiXx3b27P3DRCGkwnE6jrhy4dfc2eYN
#+begin_src sql
SELECT file_upload_id, the_date, (num_tot - num_bad) AS expected, num_updated, status
FROM file_upload WHERE unit_id = 6145308
ORDER BY the_date DESC
#+end_src
#+RESULTS[a495427180850356bf15809decd25622d71cc1f9]:
| file_upload_id | the_date | expected | num_updated | status |
|----------------+-------------------------------+----------+-------------+----------|
| 2692672 | 2021-11-28 12:03:25.048179-05 | 214 | 0 | Imported |
| 2688326 | 2021-11-21 10:08:17.397923-05 | 98 | 0 | Imported |
| 2685579 | 2021-11-16 14:22:04.300465-05 | 70 | 0 | Imported |
| 2681302 | 2021-11-09 17:01:08.179064-05 | 10 | 0 | Imported |
| 2680864 | 2021-11-09 07:56:34.510711-05 | 146 | 0 | Imported |
| 2680487 | 2021-11-08 15:20:48.086738-05 | | 0 | Imported |
| 2679310 | 2021-11-06 09:58:23.659421-04 | | 0 | Imported |
| 2678656 | 2021-11-05 06:23:04.362125-04 | 67 | 0 | Imported |
| 2677978 | 2021-11-04 10:39:26.901495-04 | 65 | 0 | Imported |
| 2677151 | 2021-11-03 09:46:37.613333-04 | 21 | 0 | Imported |
| 2676857 | 2021-11-02 20:41:03.899749-04 | 13 | 0 | Imported |
| 2671346 | 2021-10-24 16:17:56.890275-04 | 16 | 0 | Imported |
| 2668360 | 2021-10-19 10:23:31.828626-04 | 17 | 0 | Imported |
| 2664053 | 2021-10-12 09:38:45.075332-04 | 619 | 0 | Imported |
#+begin_example
core_api_1/core_api.2021-11-28.log.gz:core-api1 [28-Nov-2021 17:03:25] WARNING core_api api tornado.general - 400 POST /v1/subscribers?account_id=440922&list_id=6145308 (127.0.0.1): An invalid argument was provided to the API
core_api_1/core_api.2021-11-28.log.gz-core-api1 [28-Nov-2021 17:03:25] WARNING core_api api tornado.access - 400 POST /v1/subscribers?account_id=440922&list_id=6145308 (127.0.0.1) 77.91ms
core_api_1/core_api.2021-11-28.log.gz-core-api1 [28-Nov-2021 17:03:25] ERROR core_api api awsubscribers.mixins.postgres - Database programming error: proc coreapi_subscriber.add_subscriber args (u'6145308', u'2021-11-28T17:03:25.243897+00:00', u'bbridenstine05@gmail.com', u'Bryana Bridenstine', None, 16083773642, None, u'import', 'False', 'active', None, None, None, None, None, None, None, None, None, None, None, 2692672, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
core_api_1/core_api.2021-11-28.log.gz-Traceback (most recent call last):
core_api_1/core_api.2021-11-28.log.gz- File "/usr/local/lib/python2.7/dist-packages/awsubscribers/mixins/postgres.py", line 140, in execute_proc
core_api_1/core_api.2021-11-28.log.gz- result = yield self.application.app_session.callproc(proc, args)
core_api_1/core_api.2021-11-28.log.gz- File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 870, in run
core_api_1/core_api.2021-11-28.log.gz- value = future.result()
core_api_1/core_api.2021-11-28.log.gz- File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result
core_api_1/core_api.2021-11-28.log.gz- raise_exc_info(self._exc_info)
core_api_1/core_api.2021-11-28.log.gz- File "<string>", line 3, in raise_exc_info
core_api_1/core_api.2021-11-28.log.gz-ProgrammingError: function coreapi_subscriber.add_subscriber(unknown, unknown, unknown, unknown, unknown, bigint, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, integer, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown) does not exist
core_api_1/core_api.2021-11-28.log.gz-LINE 1: SELECT * FROM coreapi_subscriber.add_subscriber(E'6145308',E...
core_api_1/core_api.2021-11-28.log.gz- ^
core_api_1/core_api.2021-11-28.log.gz-HINT: No function matches the given name and argument types. You might need to add explicit type casts.
#+end_example
#+begin_src python
#+end_src
#+begin_src python :exports results
columns = (
"in_list_id integer",
"in_timehit timestamp with time zone",
"in_email character varying",
"in_name character varying",
"in_name2 character varying",
"in_message integer",
"in_add_url character varying",
"in_add_method_str text",
"in_verified_str text",
"in_stop_status text",
"in_note character varying",
"in_add_notes character varying",
"in_geog_country character varying",
"in_geog_region character varying",
"in_geog_city character varying",
"in_geog_postal character varying",
"in_geog_lat double precision",
"in_geog_lon double precision",
"in_geog_dma_code integer",
"in_geog_time_zone text",
"in_next_target_followuptime timestamp with time zone",
"in_file_upload_id integer",
"in_datum1 text",
"in_datum2 text",
"in_datum3 text",
"in_datum4 text",
"in_datum5 text",
"in_datum6 text",
"in_datum7 text",
"in_datum8 text",
"in_datum9 text",
"in_datum10 text",
"in_datum11 text",
"in_datum12 text",
"in_datum13 text",
"in_datum14 text",
"in_datum15 text",
"in_datum16 text",
"in_datum17 text",
"in_datum18 text",
"in_datum19 text",
"in_datum20 text",
"in_datum21 text",
"in_datum22 text",
"in_datum23 text",
"in_datum24 text",
"in_datum25 text",
)
values = (
u"6145308",
u"2021-11-28T17:03:25.243897+00:00",
u"bbridenstine05@gmail.com",
u"Bryana Bridenstine",
None,
16083773642,
None,
u"import",
"False",
"active",
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
2692672,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
)
return list(zip(columns, values))
#+end_src
#+RESULTS:
| in_list_id integer | 6145308 |
| in_timehit timestamp with time zone | 2021-11-28T17:03:25.243897+00:00 |
| in_email character varying | bbridenstine05@gmail.com |
| in_name character varying | Bryana Bridenstine |
| in_name2 character varying | None |
| in_message integer | 16083773642 |
| in_add_url character varying | None |
| in_add_method_str text | import |
| in_verified_str text | False |
| in_stop_status text | active |
| in_note character varying | None |
| in_add_notes character varying | None |
| in_geog_country character varying | None |
| in_geog_region character varying | None |
| in_geog_city character varying | None |
| in_geog_postal character varying | None |
| in_geog_lat double precision | None |
| in_geog_lon double precision | None |
| in_geog_dma_code integer | None |
| in_geog_time_zone text | None |
| in_next_target_followuptime timestamp with time zone | None |
| in_file_upload_id integer | 2692672 |
| in_datum1 text | None |
| in_datum2 text | None |
| in_datum3 text | None |
| in_datum4 text | None |
| in_datum5 text | None |
| in_datum6 text | None |
| in_datum7 text | None |
| in_datum8 text | None |
| in_datum9 text | None |
| in_datum10 text | None |
| in_datum11 text | None |
| in_datum12 text | None |
| in_datum13 text | None |
| in_datum14 text | None |
| in_datum15 text | None |
| in_datum16 text | None |
| in_datum17 text | None |
| in_datum18 text | None |
| in_datum19 text | None |
| in_datum20 text | None |
| in_datum21 text | None |
| in_datum22 text | None |
| in_datum23 text | None |
| in_datum24 text | None |
| in_datum25 text | None |
The error appears to be claiming the message id is coming in as a bigint
(=16083773642=) but the signature requires nothing bigger than an integer (max:
=2147483647=, https://www.postgresql.org/docs/9.1/datatype-numeric.html).
#+begin_src json
{
"addresses": [
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 66638848984,
"name": "Huasheng Wang",
"email": "pwang86@icloud.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 13853264347,
"name": "Kenneth Packer",
"email": "kennethbpacker@gmail.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 17024010474,
"name": "Timothy Ledford",
"email": "timo392@icloud.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 19183150297,
"name": "greg sharp",
"email": "gs9356@hotmail.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 15305317848,
"name": "Michelle Dacey",
"email": "missy830@gmail.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 15123654569,
"name": "Misty Wilson",
"email": "ellie_scarlet_777@yahoo.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 14047292024,
"name": "Jeffrey Goldenstein",
"email": "jeffreygoldenstein@gmail.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 353852276892,
"name": "Lee C",
"email": "leecagney@gmail.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 18707405500,
"name": "Jim Creecy",
"email": "tbird17@att.net",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 12484701285,
"name": "Kevin Gilroy",
"email": "kgilroy@gmail.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 19103545666,
"name": "Johnathan Williams",
"email": "fireguyofficial@gmail.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 962777188000,
"name": "Mazen Zawaideh",
"email": "mazen.zawaideh@icloud.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 15097316832,
"name": "Gary Wallace",
"email": "purple-paisley@charter.net",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 12195751916,
"name": "Robin Fiorito",
"email": "nelipot46350@yahoo.com",
"note": null,
"name2": null,
"custom_fields": {
}
},
{
"add_notes": "71.82.189.72",
"tags": [],
"message": 19517196333,
"name": "Vergil Cuenca",
"email": "vergilc@msn.com",
"note": null,
"name2": null,
"custom_fields": {
}
}
],
"should_manually_review": false
}
#+end_src

4
daily/2021-12-01.org Normal file
View file

@ -0,0 +1,4 @@
:PROPERTIES:
:ID: 5f58ce77-e768-4881-b1d4-39c2e7e3f492
:END:
#+title: 2021-12-01