pubnub 4.6.2 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of pubnub might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +3 -1
- data/.github/workflows/commands-handler.yml +27 -0
- data/.github/workflows/release/versions.json +17 -0
- data/.github/workflows/release.yml +58 -0
- data/.github/workflows/run_acceptance_tests.yml +46 -0
- data/.gitignore +18 -0
- data/.pubnub.yml +30 -4
- data/.travis.yml +0 -4
- data/CHANGELOG.md +35 -8
- data/Gemfile +2 -0
- data/Gemfile.lock +42 -1
- data/VERSION +1 -1
- data/config/cucumber.yml +7 -0
- data/features/step_definitions/access_steps.rb +258 -0
- data/features/support/env.rb +15 -0
- data/features/support/helper.rb +39 -0
- data/features/support/hooks.rb +98 -0
- data/lib/pubnub/cbor.rb +182 -0
- data/lib/pubnub/client/events.rb +1 -1
- data/lib/pubnub/client/getters_setters.rb +5 -0
- data/lib/pubnub/client/paged_history.rb +144 -17
- data/lib/pubnub/client.rb +14 -5
- data/lib/pubnub/constants.rb +10 -7
- data/lib/pubnub/event.rb +21 -10
- data/lib/pubnub/events/grant_token.rb +172 -0
- data/lib/pubnub/events/revoke_token.rb +66 -0
- data/lib/pubnub/validators/client.rb +1 -0
- data/lib/pubnub/validators/common_validator.rb +17 -0
- data/lib/pubnub/validators/grant_token.rb +51 -0
- data/lib/pubnub/validators/revoke_token.rb +31 -0
- data/lib/pubnub/version.rb +1 -1
- data/lib/pubnub.rb +1 -0
- metadata +22 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94a5346f9874553c5abf72a14cd22f76fe14d268c81ac97e8c88c8489fba2bf4
|
4
|
+
data.tar.gz: 9c6517348ed1e98f0434105afadacbb3b1d381437edb996366d977ec9749ba53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d16f505c9f0bddfb93e794abefe02f7e4c23e23158e755c97a942b27fae298d8c244d1e6cc1bae6d9ef439f5cc631354a50d401f419da2a0d3ce523474ccc737
|
7
|
+
data.tar.gz: cdab28581565cadc69597cc737b4fe616296e43f5c686a58543312d37fec6f8b4dd377d3fc26406a404e6791a4ba731bfe25cc8a5f899b1c5e054759286fcd4d
|
data/.github/CODEOWNERS
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
name: Commands processor
|
2
|
+
|
3
|
+
on:
|
4
|
+
issue_comment:
|
5
|
+
types: [created]
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
process:
|
9
|
+
name: Process command
|
10
|
+
if: ${{ github.event.issue.pull_request && endsWith(github.repository, '-private') != true && startsWith(github.event.comment.body, '@client-engineering-bot ') }}
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- name: Checkout repository
|
14
|
+
uses: actions/checkout@v2
|
15
|
+
- name: Checkout release actions
|
16
|
+
uses: actions/checkout@v2
|
17
|
+
with:
|
18
|
+
repository: pubnub/client-engineering-deployment-tools
|
19
|
+
ref: v1
|
20
|
+
token: ${{ secrets.GH_TOKEN }}
|
21
|
+
path: .github/.release/actions
|
22
|
+
- name: Process changelog entries
|
23
|
+
uses: ./.github/.release/actions/actions/commands
|
24
|
+
with:
|
25
|
+
token: ${{ secrets.GH_TOKEN }}
|
26
|
+
listener: client-engineering-bot
|
27
|
+
jira-api-key: ${{ secrets.JIRA_API_KEY }}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
".pubnub.yml": [
|
3
|
+
{ "pattern": "^version: \"(.+)\"$", "cleared": true },
|
4
|
+
{ "pattern": "\\s+package-name: pubnub-(v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?).gem$", "cleared": true },
|
5
|
+
{ "pattern": "/releases/download/(v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?)/pubnub-.*.gem$", "cleared": false },
|
6
|
+
{ "pattern": "/releases/download/.*/pubnub-(v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?).gem$", "cleared": true }
|
7
|
+
],
|
8
|
+
"VERSION": [
|
9
|
+
{ "pattern": "(v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?)", "cleared": true }
|
10
|
+
],
|
11
|
+
"Gemfile.lock": [
|
12
|
+
{ "pattern": "^\\s{2,}pubnub \\((v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?)\\)$", "cleared": true }
|
13
|
+
],
|
14
|
+
"lib/pubnub/version.rb": [
|
15
|
+
{ "pattern": "^\\s{2,}VERSION = '(v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?)'.freeze", "cleared": true }
|
16
|
+
]
|
17
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
name: Automated product release
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
branches: [ master ]
|
6
|
+
types: [ closed ]
|
7
|
+
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
check-release:
|
11
|
+
name: Check release required
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
if: ${{ github.event.pull_request.merged && endsWith(github.repository, '-private') != true }}
|
14
|
+
outputs:
|
15
|
+
release: ${{ steps.check.outputs.ready }}
|
16
|
+
steps:
|
17
|
+
- name: Checkout actions
|
18
|
+
uses: actions/checkout@v2
|
19
|
+
with:
|
20
|
+
repository: pubnub/client-engineering-deployment-tools
|
21
|
+
ref: v1
|
22
|
+
token: ${{ secrets.GH_TOKEN }}
|
23
|
+
path: .github/.release/actions
|
24
|
+
- id: check
|
25
|
+
name: Check pre-release completed
|
26
|
+
uses: ./.github/.release/actions/actions/checks/release
|
27
|
+
with:
|
28
|
+
token: ${{ secrets.GH_TOKEN }}
|
29
|
+
publish:
|
30
|
+
name: Publish package
|
31
|
+
runs-on: ubuntu-latest
|
32
|
+
needs: check-release
|
33
|
+
if: ${{ needs.check-release.outputs.release == 'true' }}
|
34
|
+
steps:
|
35
|
+
- name: Checkout repository
|
36
|
+
uses: actions/checkout@v2
|
37
|
+
with:
|
38
|
+
# This should be the same as the one specified for on.pull_request.branches
|
39
|
+
ref: master
|
40
|
+
- name: Checkout actions
|
41
|
+
uses: actions/checkout@v2
|
42
|
+
with:
|
43
|
+
repository: pubnub/client-engineering-deployment-tools
|
44
|
+
ref: v1
|
45
|
+
token: ${{ secrets.GH_TOKEN }}
|
46
|
+
path: .github/.release/actions
|
47
|
+
- name: Publish to RubyGems
|
48
|
+
uses: ./.github/.release/actions/actions/services/rubygems
|
49
|
+
with:
|
50
|
+
token: ${{ secrets.GH_TOKEN }}
|
51
|
+
gem-username: ${{ secrets.GEMS_ACCOUNT }}
|
52
|
+
gem-token: ${{ secrets.GEMS_API_KEY }}
|
53
|
+
- name: Create Release
|
54
|
+
uses: ./.github/.release/actions/actions/services/github-release
|
55
|
+
with:
|
56
|
+
token: ${{ secrets.GH_TOKEN }}
|
57
|
+
jira-api-key: ${{ secrets.JIRA_API_KEY }}
|
58
|
+
last-service: true
|
@@ -0,0 +1,46 @@
|
|
1
|
+
name: run_acceptance_tests
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: Perform Acceptance BDD tests
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
steps:
|
10
|
+
- name: Checkout project
|
11
|
+
uses: actions/checkout@v2
|
12
|
+
- name: Checkout mock-server action
|
13
|
+
uses: actions/checkout@v2
|
14
|
+
with:
|
15
|
+
repository: pubnub/client-engineering-deployment-tools
|
16
|
+
ref: github-actions
|
17
|
+
token: ${{ secrets.GH_TOKEN }}
|
18
|
+
path: client-engineering-deployment-tools
|
19
|
+
- name: Run mock server action
|
20
|
+
uses: ./client-engineering-deployment-tools/actions/mock-server
|
21
|
+
with:
|
22
|
+
token: ${{ secrets.GH_TOKEN }}
|
23
|
+
- name: Install dependencies
|
24
|
+
run: |
|
25
|
+
sudo gem install bundler &&
|
26
|
+
bundle install
|
27
|
+
- name: Run acceptance tests (optional)
|
28
|
+
run: bundle exec cucumber sdk-specifications/features/ -p mock -p run_beta -p report_beta -f pretty
|
29
|
+
continue-on-error: true
|
30
|
+
- name: Run acceptance tests (required)
|
31
|
+
run: bundle exec cucumber sdk-specifications/features/ -p mock -p run_main -p report_main -f pretty
|
32
|
+
- name: Combine test results
|
33
|
+
if: always()
|
34
|
+
run: |
|
35
|
+
sudo npm install -g junit-report-merger &&
|
36
|
+
jrm ./main.xml "./main/**/*.xml" &&
|
37
|
+
jrm ./beta.xml "./beta/**/*.xml"
|
38
|
+
- name: Expose main report
|
39
|
+
uses: actions/upload-artifact@v2
|
40
|
+
if: always()
|
41
|
+
with:
|
42
|
+
name: acceptance-test-reports
|
43
|
+
path: |
|
44
|
+
main.xml
|
45
|
+
beta.xml
|
46
|
+
retention-days: 7
|
data/.gitignore
CHANGED
@@ -8,3 +8,21 @@ log/*
|
|
8
8
|
examples/test.rb
|
9
9
|
coverage
|
10
10
|
dev_scripts
|
11
|
+
|
12
|
+
# GitHub Actions #
|
13
|
+
##################
|
14
|
+
.github/.release
|
15
|
+
.bundle/ruby
|
16
|
+
|
17
|
+
.travis/README.md
|
18
|
+
.travis/scripts
|
19
|
+
|
20
|
+
deployment_keys
|
21
|
+
deployment_keys-private
|
22
|
+
deployment_keys.tar
|
23
|
+
|
24
|
+
.travis/github-labels-policy.json
|
25
|
+
.travis/github-labels.json
|
26
|
+
/.rvmrc
|
27
|
+
/.bundle/
|
28
|
+
/features/*.feature
|
data/.pubnub.yml
CHANGED
@@ -1,6 +1,28 @@
|
|
1
1
|
---
|
2
|
-
version: "
|
2
|
+
version: "5.0.0"
|
3
3
|
changelog:
|
4
|
+
- date: 2022-01-13
|
5
|
+
version: v5.0.0
|
6
|
+
changes:
|
7
|
+
- type: improvement
|
8
|
+
text: "BREAKING CHANGES: uuid is required parameter to create PubNub instance."
|
9
|
+
- date: 2021-12-16
|
10
|
+
version: v4.8.0
|
11
|
+
changes:
|
12
|
+
- type: feature
|
13
|
+
text: "Add revoke token feature."
|
14
|
+
- date: 2021-11-24
|
15
|
+
version: v4.7.1
|
16
|
+
changes:
|
17
|
+
- type: feature
|
18
|
+
text: "Add new method `all_history_messages` which return messages from requested interval or `since` / `before` date in single object."
|
19
|
+
- type: bug
|
20
|
+
text: "Fix exception raised when optional start / end not passed to `paged_history`."
|
21
|
+
- date: 2021-11-09
|
22
|
+
version: v4.7.0
|
23
|
+
changes:
|
24
|
+
- type: feature
|
25
|
+
text: "Grant_token allows generation of signed token with permissions for channels, channel groups and uuids."
|
4
26
|
-
|
5
27
|
changes:
|
6
28
|
-
|
@@ -391,6 +413,10 @@ features:
|
|
391
413
|
access:
|
392
414
|
- ACCESS-GRANT
|
393
415
|
- ACCESS-SECRET-KEY-ALL-ACCESS
|
416
|
+
- ACCESS-GRANT-TOKEN
|
417
|
+
- ACCESS-PARSE-TOKEN
|
418
|
+
- ACCESS-SET-TOKEN
|
419
|
+
- ACCESS-REVOKE-TOKEN
|
394
420
|
channel-groups:
|
395
421
|
- CHANNEL-GROUPS-ADD-CHANNELS
|
396
422
|
- CHANNEL-GROUPS-REMOVE-CHANNELS
|
@@ -600,7 +626,7 @@ sdks:
|
|
600
626
|
- x86-64
|
601
627
|
- distribution-type: package
|
602
628
|
distribution-repository: RubyGems
|
603
|
-
package-name: pubnub-
|
629
|
+
package-name: pubnub-5.0.0.gem
|
604
630
|
location: https://rubygems.org/gems/pubnub
|
605
631
|
requires:
|
606
632
|
- name: addressable
|
@@ -705,8 +731,8 @@ sdks:
|
|
705
731
|
- x86-64
|
706
732
|
- distribution-type: library
|
707
733
|
distribution-repository: GitHub release
|
708
|
-
package-name: pubnub-
|
709
|
-
location: https://github.com/pubnub/ruby/releases/download/
|
734
|
+
package-name: pubnub-5.0.0.gem
|
735
|
+
location: https://github.com/pubnub/ruby/releases/download/v5.0.0/pubnub-5.0.0.gem
|
710
736
|
requires:
|
711
737
|
- name: addressable
|
712
738
|
min-version: 2.0.0
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,40 @@
|
|
1
|
-
|
1
|
+
## v5.0.0
|
2
|
+
January 13 2022
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
##### v4.6.1
|
6
|
-
|
7
|
-
- Exclude `spec` and `fixtures` from built gem file.
|
8
|
-
- Fix Ruby SDK repository location under `sdks` section in `.pubnub.yml`.
|
9
|
-
- Add new section to `.pubnub.yml` file with information about SDK and destribution types.
|
4
|
+
#### Modified
|
5
|
+
- BREAKING CHANGES: uuid is required parameter to create PubNub instance.
|
10
6
|
|
7
|
+
## v4.8.0
|
8
|
+
December 16 2021
|
9
|
+
|
10
|
+
#### Added
|
11
|
+
- Add revoke token feature.
|
12
|
+
|
13
|
+
## v4.7.1
|
14
|
+
November 24 2021
|
15
|
+
|
16
|
+
#### Added
|
17
|
+
- Add new method `all_history_messages` which return messages from requested interval or `since` / `before` date in single object.
|
18
|
+
|
19
|
+
#### Fixed
|
20
|
+
- Fix exception raised when optional start / end not passed to `paged_history`.
|
21
|
+
|
22
|
+
## v4.7.0
|
23
|
+
November 09 2021
|
24
|
+
|
25
|
+
#### Added
|
26
|
+
- Grant_token allows generation of signed token with permissions for channels, channel groups and uuids.
|
27
|
+
|
28
|
+
##### v4.6.2
|
29
|
+
|
30
|
+
- Add new `sdks` section to `.pubnub.yml` with information about available artifacts and distribution variants.
|
31
|
+
|
32
|
+
##### v4.6.1
|
33
|
+
|
34
|
+
- Exclude `spec` and `fixtures` from built gem file.
|
35
|
+
- Fix Ruby SDK repository location under `sdks` section in `.pubnub.yml`.
|
36
|
+
- Add new section to `.pubnub.yml` file with information about SDK and destribution types.
|
37
|
+
|
11
38
|
##### v4.6.0
|
12
39
|
|
13
40
|
- BREAKING CHANGE: Add randomized initialization vector usage by default for data encryption / decryption in publish / subscribe / history API calls.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pubnub (
|
4
|
+
pubnub (5.0.0)
|
5
5
|
addressable (>= 2.0.0)
|
6
6
|
concurrent-ruby (~> 1.1.5)
|
7
7
|
concurrent-ruby-edge (~> 0.5.0)
|
@@ -19,6 +19,7 @@ GEM
|
|
19
19
|
awesome_print (1.8.0)
|
20
20
|
binding_of_caller (0.8.0)
|
21
21
|
debug_inspector (>= 0.0.1)
|
22
|
+
builder (3.2.4)
|
22
23
|
codacy-coverage (2.2.1)
|
23
24
|
simplecov
|
24
25
|
coderay (1.1.3)
|
@@ -27,6 +28,37 @@ GEM
|
|
27
28
|
concurrent-ruby (~> 1.1.5)
|
28
29
|
crack (0.4.3)
|
29
30
|
safe_yaml (~> 1.0.0)
|
31
|
+
cucumber (7.0.0)
|
32
|
+
builder (~> 3.2, >= 3.2.4)
|
33
|
+
cucumber-core (~> 10.0, >= 10.0.1)
|
34
|
+
cucumber-create-meta (~> 6.0, >= 6.0.1)
|
35
|
+
cucumber-cucumber-expressions (~> 12.1, >= 12.1.1)
|
36
|
+
cucumber-gherkin (~> 20.0, >= 20.0.1)
|
37
|
+
cucumber-html-formatter (~> 16.0, >= 16.0.1)
|
38
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
39
|
+
cucumber-wire (~> 6.0, >= 6.0.1)
|
40
|
+
diff-lcs (~> 1.4, >= 1.4.4)
|
41
|
+
mime-types (~> 3.3, >= 3.3.1)
|
42
|
+
multi_test (~> 0.1, >= 0.1.2)
|
43
|
+
sys-uname (~> 1.2, >= 1.2.2)
|
44
|
+
cucumber-core (10.0.1)
|
45
|
+
cucumber-gherkin (~> 20.0, >= 20.0.1)
|
46
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
47
|
+
cucumber-tag-expressions (~> 3.0, >= 3.0.1)
|
48
|
+
cucumber-create-meta (6.0.1)
|
49
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
50
|
+
sys-uname (~> 1.2, >= 1.2.2)
|
51
|
+
cucumber-cucumber-expressions (12.1.3)
|
52
|
+
cucumber-gherkin (20.0.1)
|
53
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
54
|
+
cucumber-html-formatter (16.0.1)
|
55
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
56
|
+
cucumber-messages (17.1.1)
|
57
|
+
cucumber-tag-expressions (3.0.1)
|
58
|
+
cucumber-wire (6.1.1)
|
59
|
+
cucumber-core (~> 10.0, >= 10.0.1)
|
60
|
+
cucumber-cucumber-expressions (~> 12.1, >= 12.1.2)
|
61
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
30
62
|
debug_inspector (0.0.3)
|
31
63
|
diff-lcs (1.4.4)
|
32
64
|
docile (1.3.2)
|
@@ -68,6 +100,7 @@ GEM
|
|
68
100
|
dry-equalizer (~> 0.2)
|
69
101
|
dry-initializer (~> 3.0)
|
70
102
|
dry-schema (~> 1.5)
|
103
|
+
ffi (1.13.1)
|
71
104
|
ffi (1.13.1-java)
|
72
105
|
hashdiff (1.0.1)
|
73
106
|
httpclient (2.8.3)
|
@@ -75,6 +108,10 @@ GEM
|
|
75
108
|
json (2.3.1)
|
76
109
|
json (2.3.1-java)
|
77
110
|
method_source (1.0.0)
|
111
|
+
mime-types (3.3.1)
|
112
|
+
mime-types-data (~> 3.2015)
|
113
|
+
mime-types-data (3.2021.0901)
|
114
|
+
multi_test (0.1.2)
|
78
115
|
parallel (1.19.2)
|
79
116
|
parser (2.7.1.4)
|
80
117
|
ast (~> 2.4.1)
|
@@ -130,6 +167,8 @@ GEM
|
|
130
167
|
simplecov-html (0.12.2)
|
131
168
|
spoon (0.0.6)
|
132
169
|
ffi
|
170
|
+
sys-uname (1.2.2)
|
171
|
+
ffi (~> 1.1)
|
133
172
|
timers (4.3.0)
|
134
173
|
unicode-display_width (1.7.0)
|
135
174
|
vcr (6.0.0)
|
@@ -145,12 +184,14 @@ PLATFORMS
|
|
145
184
|
DEPENDENCIES
|
146
185
|
awesome_print
|
147
186
|
codacy-coverage
|
187
|
+
cucumber
|
148
188
|
pry
|
149
189
|
pry-rescue
|
150
190
|
pry-stack_explorer
|
151
191
|
pubnub!
|
152
192
|
rr
|
153
193
|
rspec
|
194
|
+
rspec-expectations
|
154
195
|
rspec-retry
|
155
196
|
rubocop
|
156
197
|
simplecov (>= 0.12)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
5.0.0
|
data/config/cucumber.yml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
default: -p mock -p run_main
|
2
|
+
run_main: -t "not @skip and not @na=ruby and not @beta"
|
3
|
+
report_main: -f junit --out main
|
4
|
+
run_beta: -t "not @skip and not @na=ruby and @beta"
|
5
|
+
report_beta: -f junit --out beta
|
6
|
+
mock: SERVER_MOCK=true PAM_SUB_KEY=subKey PAM_PUB_KEY=pubKey PAM_SEC_KEY=secKey SERVER_HOST=localhost SERVER_PORT=8090
|
7
|
+
prod: SERVER_MOCK=false
|