Skip to content

Commit

Permalink
Merge pull request #124 from Ilhasoft/update/v7.5.35-ir
Browse files Browse the repository at this point in the history
Update/v7.5.35 ir
  • Loading branch information
rasoro authored Dec 28, 2023
2 parents 96805c0 + f2d171f commit 21894b4
Show file tree
Hide file tree
Showing 135 changed files with 3,894 additions and 3,157 deletions.
26 changes: 14 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
name: CI
on: [push, pull_request]
env:
go-version: "1.18.x"
postgis-version: "3.1"
redis-version: "5.0.6"
go-version: "1.19.x"
jobs:
test:
name: Test
strategy:
matrix:
pg-version: ["12", "13"]
env:
pg-version: "14"
postgis-version: "3.2"
redis-version: "6.2"
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Install Redis
uses: zhulik/[email protected]
Expand All @@ -23,12 +22,14 @@ jobs:
- name: Install PostgreSQL
uses: nyaruka/postgis-action@v2
with:
postgresql version: ${{ matrix.pg-version }}
postgresql version: ${{ env.pg-version }}
postgis version: ${{ env.postgis-version }}
postgresql password: temba

- name: Install Linux packages
run: sudo apt install -y --no-install-recommends postgresql-client
run: |
sudo apt-get update
sudo apt install -y --no-install-recommends postgresql-client
- name: Initialize database
# we create our test database with a different user so that we can drop everything owned by this user between tests
Expand All @@ -39,7 +40,7 @@ jobs:
psql -h localhost -U postgres --no-password -c "CREATE DATABASE mailroom_test;"
- name: Install Go
uses: actions/setup-go@v1
uses: actions/setup-go@v3
with:
go-version: ${{ env.go-version }}

Expand All @@ -52,6 +53,7 @@ jobs:
if: success()
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true

release:
Expand All @@ -61,7 +63,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Fetch GoFlow docs
# for backward compatibility, English docs are copied to root of docs directory
Expand All @@ -71,7 +73,7 @@ jobs:
cp ./docs/en-us/*.* docs/
- name: Install Go
uses: actions/setup-go@v1
uses: actions/setup-go@v3
with:
go-version: ${{ env.go-version }}

Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened,closed,synchronize]

jobs:
CLAssistant:
runs-on: ubuntu-latest
steps:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
# Beta Release
uses: contributor-assistant/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN : ${{ secrets.CLA_TOKEN }}
with:
path-to-signatures: 'signatures/version1/cla.json'
path-to-document: 'https://github.com/nyaruka/license/blob/main/TextIt_CLA.md'
branch: 'main'
allowlist: bot*
remote-organization-name: 'nyaruka'
remote-repository-name: 'legal'
175 changes: 175 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,178 @@
v7.5.35 (2022-12-05)
-------------------------
* Retry messages which fail to queue to courier

v7.5.34 (2022-11-30)
-------------------------
* Update deps including new goflow which adds legacy_vars issues
* Fix test and cleanup msg status constants
* Add basic auth for Elastic

v7.5.33
----------
* Test with only redis 6.2
* Don't filter labels by label_type which is being removed

v7.5.32
----------
* Send msg id to fetch-attachments endpoint and clean up flows.MsgID vs models.MsgID
* Revert "Remove rocketchat as ticketer"
* Don't include unavailable attachments in flows but do save them

v7.5.31
----------
* Set server idle timeout to 90 seconds
* Test against redis 6.2 and postgres 14

v7.5.30
----------
* Add workaround to contact resolve endpoint to deal with invalid phone numbers

v7.5.29
----------
* Update to latest gocommon and goflow
* Remove rocketchat as ticketer

v7.5.28
----------
* Update deps

v7.5.27
----------
* Remove legacy functionality to look for missed call trigger if there's no incoming call trigger

v7.5.26
----------
* Update to latest goflow

v7.5.25
----------
* Update to latest goflow

v7.5.24
----------
* Update to latest goflow
* Remove some leftover references to topups

v7.5.23
----------
* Remove topups

v7.5.22
----------
* Set is_active=TRUE on new broadcasts

v7.5.21
----------
* Update to latest goflow

v7.5.20
----------
* Remove unused created_on field from msg events
* Rename media config vars
* Update to latest gocommon

v7.5.19
----------
* Add channel removed failed reason for msgs
* Call courier endpoint to fetch attachments if they're raw URLs

v7.5.18
----------
* Move interrupt_channel task into tasks/interrupts
* Tweak msg retries to ignore deleted channels
* Remove no longer used channels option from interrupt_sessions task

v7.5.17
----------
* Update to latest goflow
* Add interrupt channel task

v7.5.16
----------
* If starting a message flow from an ivr trigger, send reject response

v7.5.15
----------
* Update to latest goflow which changes expirations for dial waits
* Add support for time limits on dial waits
* Rework message events to use channel UUID and include channel type
* Simplify getting active call count
* Allow incoming call triggers to take message flows

v7.5.14
----------
* Switch to new ivr_call table

v7.5.13
----------
* Update test database
* Rename channelconnection to call
* Don't read or write connection_type
* Attach channel logs to channel connections

v7.5.12
----------
* Add redaction to IVR channel logging

v7.5.11
----------
* Use MsgOut.UnsendableReason instead of checking contact status
* Restructure channel logs like how they are in courier
* Update to latest goflow and gocommon

v7.5.10
----------
* Bump default steps per sprint limit to 200
* Use go 1.19

v7.5.9
----------
* Add channel log UUID field
* Add codecov token to ci.yml

v7.5.8
----------
* Update to latest goflow and gocommon

v7.5.7
----------
* Update to latest gocommon

v7.5.6
----------
* Update to latest gocommon and goflow
* Save IVR channel logs in new format
* Upgrade dependencies

v7.5.5
----------
* Update to latest goflow and gocommon
* Add support for AWS Cred Chains

v7.5.4
----------
* Add test utility to make it easier to test with imported flows
* Failed sessions should be saved with ended_on set

v7.5.3
----------
* Add endpoint to do synchronous interrupt of a single contact

v7.5.2
----------
* Update to latest goflow
* Set opened_by_id on the open ticket event as well as the ticket itself

v7.5.1
----------
* Add Ticket.opened_by and opened_in and set when opening tickets

v7.5.0
----------
* Update to latest goflow with support for ticket modifier
* Update to latest goflow which removes sessions from engine services

v7.4.1
----------
* Update to latest goflow
Expand Down
16 changes: 16 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
RapidPro Mailroom - backend services for the RapidPro platform.

Copyright (C) 2018-2023 Nyaruka, Inc.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License below for more details.

------------------------------------------------------------------------

GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007

Expand Down
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# Mailroom
# RapidPro Mailroom

[![Build Status](https://github.com/nyaruka/mailroom/workflows/CI/badge.svg)](https://github.com/nyaruka/mailroom/actions?query=workflow%3ACI)
[![codecov](https://codecov.io/gh/nyaruka/mailroom/branch/main/graph/badge.svg)](https://codecov.io/gh/nyaruka/mailroom)
[![Build Status](https://github.com/rapidpro/mailroom/workflows/CI/badge.svg)](https://github.com/rapidpro/mailroom/actions?query=workflow%3ACI)
[![codecov](https://codecov.io/gh/rapidpro/mailroom/branch/main/graph/badge.svg)](https://codecov.io/gh/rapidpro/mailroom)

Service for RapidPro/TextIt which does the heavy lifting of running flow starts, campaigns etc.
flows. It interacts directly with the database and sends and receives messages with [Courier](https://github.com/nyaruka/courier)
for handling via Redis.
Service for RapidPro which does the heavy lifting of running flow starts, campaigns etc. It interacts directly with the database
and sends and receives messages with [Courier](https://github.com/nyaruka/courier) for handling via Redis.

## Deploying

As a Go application, it compiles to a binary and that binary along with the config file is all
you need to run it on your server. You can find bundles for each platform in the
[releases directory](https://github.com/nyaruka/mailroom/releases). We recommend running it
[releases directory](https://github.com/rapidpro/mailroom/releases). We recommend running it
behind a reverse proxy such as nginx or Elastic Load Balancer that provides HTTPs encryption.

## Configuration
Expand All @@ -35,9 +34,11 @@ For use with RapidPro, you will need to configure these settings:
- `MAILROOM_DB`: URL describing how to connect to the RapidPro database (default "postgres://temba:temba@localhost/temba?sslmode=disable")
- `MAILROOM_READONLY_DB`: URL for an additional database connection for read-only operations (optional)
- `MAILROOM_REDIS`: URL describing how to connect to Redis (default "redis://localhost:6379/15")
- `MAILROOM_ELASTIC`: URL describing how to connect to ElasticSearch (default "http://localhost:9200")
- `MAILROOM_SMTP_SERVER`: the smtp configuration for sending emails ex: smtp://user%40password@server:port/?from=foo%40gmail.com
- `MAILROOM_FCM_KEY`: the key for Firebase Cloud Messaging used to sync Android channels
- `MAILROOM_ELASTIC`: URL describing how to connect to ElasticSearch (default "http://localhost:9200")
- `MAILROOM_ELASTIC_USERNAME`: ElasticSearch username for Basic Auth
- `MAILROOM_ELASTIC_PASSWORD`: ElasticSearch password for Basic Auth

For writing of message attachments, you need an S3 compatible service which you configure with:

Expand Down Expand Up @@ -71,7 +72,7 @@ Recommended settings for error and performance monitoring:
Once you've checked out the code, you can build the service with:

```
go build github.com/nyaruka/mailroom/cmd/mailroom
go build github.com/rapidpro/mailroom/cmd/mailroom
```

This will create a new executable in $GOPATH/bin called `mailroom`.
Expand Down
4 changes: 4 additions & 0 deletions WENI-CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
1.4.19-mailroom-7.5.35
----------
* update mailroom to 7.5.35

1.4.19-mailroom-7.4.1
----------
* update mailroom to 7.4.1
Expand Down
Loading

0 comments on commit 21894b4

Please sign in to comment.