Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from codenotary:master #2

Open
wants to merge 1,066 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1066 commits
Select commit Hold shift + click to select a range
a55b846
feat(embedded/sql): extra metadata when creating tx
jeroiraz Sep 27, 2023
80cedb7
feat(pkg/database): add user when creating collection
jeroiraz Sep 27, 2023
045a655
feat(pkg/server): add user when creating collection
jeroiraz Sep 27, 2023
cda4702
chore(embedded/document): register username when applying a change
jeroiraz Sep 27, 2023
a84851c
chore(pkg/database): register username when applying a change
jeroiraz Sep 27, 2023
29e7a63
chore(pkg/server): register username when applying a change in doc apis
jeroiraz Sep 27, 2023
8753e18
chore(pkg/api): adjust doc serializations to match verification
jeroiraz Sep 28, 2023
a457bb3
chore(embedded/document): attach username when auditing document
jeroiraz Sep 28, 2023
e35612a
feat(pkg/api): include username in document audit response
jeroiraz Sep 28, 2023
b9d2ded
test(embedded/document): adjust unit test to reproduce issue when rem…
jeroiraz Sep 29, 2023
0cdf8e4
remove CAS from CI pipelines
SimoneLazzaris Oct 5, 2023
0895d1e
chore(deps): bump golang.org/x/crypto from 0.13.0 to 0.14.0
dependabot[bot] Oct 5, 2023
d456176
feat(embedded/tbtree): key reader supporting historical values
jeroiraz Oct 3, 2023
f246f15
chore(embedded/tbtree): fetching historical values
jeroiraz Oct 3, 2023
6edd689
chore(embedded/store): key reader including historical entries
jeroiraz Oct 3, 2023
47100cb
feat(embedded/sql): query including historical rows
jeroiraz Oct 3, 2023
abd5c48
feat(embedded/sql): table history
jeroiraz Oct 4, 2023
10da665
fix(embedded/tbtree): consider offset for history count calculation
jeroiraz Oct 4, 2023
b52dd10
feat(embedded/sql): include _rev column in historical queries
jeroiraz Oct 4, 2023
f7aad3d
chore(cmd/immuclient): display raw column selector in table header
jeroiraz Oct 4, 2023
5b58a17
chore(embedded/sql): historical queries over primary index
jeroiraz Oct 6, 2023
178270c
fix(embedded/tbtree): proper _rev calculation
jeroiraz Oct 6, 2023
82883ee
test(embedded/sql): historical query unit testing
jeroiraz Oct 6, 2023
b1ec963
test(embedded/document): removeField with invalid arguments
jeroiraz Oct 9, 2023
5594f10
test(embedded/document): document insertion with invalid arguments
jeroiraz Oct 9, 2023
54035e5
test(embedded/logger): cover more logging edge cases
jeroiraz Oct 9, 2023
3bd7091
test(embedded/sql): cover some sql edge cases
jeroiraz Oct 9, 2023
50846ec
test(embedded/store): cover some edge cases
jeroiraz Oct 9, 2023
c9b1ec7
chore: align covered packages when pulling and merging
jeroiraz Oct 9, 2023
e8be066
test(pkg/database): cover some edge cases
jeroiraz Oct 9, 2023
f9f0fcc
test(embedded/sql): cover reserved name cases
jeroiraz Oct 9, 2023
04a7c4c
test(embedded/tbtree): nodeRef coverage
jeroiraz Oct 9, 2023
114ea99
test(embedded/sql): uuid data-type coverage
jeroiraz Oct 10, 2023
8a58b70
chore(deps): bump golang.org/x/net from 0.15.0 to 0.17.0
dependabot[bot] Oct 10, 2023
a6c0f73
feat(embedded/document): doc audit without retrieving payloads
jeroiraz Oct 11, 2023
ad89948
chore(pkg/database): doc audit without retrieving payloads
jeroiraz Oct 11, 2023
ed6ad99
feat(pkg/api): docAudit returning timestamp and possibility to omit p…
jeroiraz Oct 11, 2023
e3fb0db
chore: build with swaggerui
jeroiraz Oct 11, 2023
0a2992d
release: v1.9.0-RC1
jeroiraz Oct 11, 2023
6ed934b
Update README.md
jeroiraz Oct 12, 2023
5ab892f
Update README.md
jeroiraz Oct 12, 2023
7bcd2f7
fix: standard syntax for drop index
SimoneLazzaris Oct 12, 2023
6069241
Kept also old syntax
SimoneLazzaris Oct 12, 2023
5ee43eb
restricted drop index syntax with dot notation to single column
SimoneLazzaris Oct 12, 2023
325a247
feature: tool for creating database with parameters
SimoneLazzaris Oct 13, 2023
38f5a1a
removed unnecessary dependency
SimoneLazzaris Oct 13, 2023
420d631
chore(embedded/sql): expose subquery creation
jeroiraz Oct 13, 2023
b5c6917
chore(embedded/document): count with limit in subquery
jeroiraz Oct 13, 2023
6db5bcb
chore(pkg/api): set optional parameters
jeroiraz Oct 13, 2023
57d8f26
chore(pkg/api): set optional parameters
jeroiraz Oct 13, 2023
acb0ed4
add add/remove column stress test
SimoneLazzaris Oct 13, 2023
30716c3
fix(embedded/sql): fix sql temporal range evaluation
jeroiraz Oct 16, 2023
aaa9efd
release: v1.9.0-RC2
jeroiraz Oct 16, 2023
09841ef
chore(cmd/immuadmin): add indexing related flags
jeroiraz Oct 18, 2023
4b1d3b1
feat(embedded/sql): table renaming
jeroiraz Oct 18, 2023
d0b3c4b
release: v1.9DOM
jeroiraz Oct 19, 2023
5239923
Update README.md
jeroiraz Oct 19, 2023
c70e4c4
release: v1.9DOM.0
jeroiraz Oct 19, 2023
3a212c2
Update README.md
jeroiraz Oct 19, 2023
221ed66
chore: docker image with swagger ui
jeroiraz Oct 19, 2023
df9f5c4
chore: docker image with swagger ui
jeroiraz Oct 19, 2023
2225fcc
Update README.md
jeroiraz Oct 19, 2023
a80c309
chore: docker image with swagger ui (for AWS Marketplace)
SimoneLazzaris Oct 20, 2023
56f113b
fix: lower databasename in OpenSession
rubiagatra Oct 19, 2023
7ea064d
test(documents): update tests for latest api
marcosanchotene Oct 19, 2023
eaaeb29
chore(deps): bump github.com/google/uuid from 1.3.1 to 1.4.0
dependabot[bot] Oct 26, 2023
72e3f68
Add (back) VerifiableGet function.
SimoneLazzaris Oct 23, 2023
7c8cc2f
test(embedded/sql): unit test with read-your-own-writes
jeroiraz Oct 30, 2023
3a94899
chore(embedded/store): indexer source and target prefixes
jeroiraz Nov 2, 2023
5bac98d
test(embedded/sql): ryow unit test
jeroiraz Nov 2, 2023
e333f27
fix(embedded/store): handle key mapping in ongoing txs
jeroiraz Nov 2, 2023
abb02ae
fix(embedded/store): handle key mapping in ongoing txs
jeroiraz Nov 2, 2023
ad1a62c
fix(embedded/store): handle key mapping in ongoing txs
jeroiraz Nov 2, 2023
19cc097
test(embedded/sql): restore test iteration
jeroiraz Nov 2, 2023
8ff8643
fix(pkg/database): ensure proper tx validation
jeroiraz Nov 2, 2023
033662e
fix(embedded/sql): fix data-race when mapping keys
jeroiraz Nov 3, 2023
4ac392d
fix(embedded/sql): fix data-race when mapping keys
jeroiraz Nov 3, 2023
f203d1d
chore(embedded/sql): wip emulate pg_type system table
jeroiraz Oct 24, 2023
d1de81a
chore(pkg/pgsql): uuid and float types conversion
jeroiraz Oct 24, 2023
2aff0ff
chore(pkg/pgsql): handle deallocate prepared stmt
jeroiraz Oct 24, 2023
46a3592
chore(pkg/pgsql): decouple error from ready to query messages
jeroiraz Oct 24, 2023
0e6d1b6
chore(pkg/pgsql): pgsql write protocol improvements
jeroiraz Oct 24, 2023
ef9b416
chore(pkg/pgsql): transactional query machine
jeroiraz Oct 26, 2023
d7dcf9d
chore(cmd/immudb): upgrade to new pgsql changes
jeroiraz Oct 26, 2023
55e6ac1
chore(pkg/client): possibility to retrieve session id
jeroiraz Oct 26, 2023
4a9e6f2
chore(pkg/server): upgrade to transactional pgsql server
jeroiraz Oct 26, 2023
895a082
chore(pkg/pgsql): proper handling of queries with empty resultsets
jeroiraz Oct 26, 2023
fe4db08
chore(pkg/pgsql): support multiple-statements in simple-query mode
jeroiraz Oct 27, 2023
90e9dbf
chore(pkg/pgsql): comment describing pgsql wire protocol constraints
jeroiraz Oct 27, 2023
fc87c85
feat(embedded/sql): show databases/tables stmt
jeroiraz Oct 27, 2023
744764c
chore(pkg/server): set dynamic immudb server port in pgsql server
jeroiraz Oct 27, 2023
2ee79af
chore(pkg/pgsql): protocol enhancements
jeroiraz Oct 27, 2023
bb09ce5
test(pkg/pgsql): integration tests
jeroiraz Oct 27, 2023
85fbfa9
chore(embedded/sql): continue to support databases and tables datasou…
jeroiraz Oct 27, 2023
69c3476
chore(pkg/server): pgsql server creation only when enabled
jeroiraz Oct 28, 2023
b936922
chore(pkg/pgsql): tls support
jeroiraz Nov 3, 2023
60ce13c
chore(pkg/pgsql): single command complete message
jeroiraz Nov 3, 2023
5ab416c
test(pkg/pgsql): query machine protocol upgrade
jeroiraz Nov 6, 2023
02d6190
test(embedded/sql): cover pg_type reserved table
jeroiraz Nov 7, 2023
86d273c
test(pkg/pgsql): unit testing for deallocate stmt
jeroiraz Nov 7, 2023
6d18ba6
feat(pkg/server): add support of underscore in db name
martinjirku Nov 7, 2023
98f4f77
chore(embedded/sql): show users stmt
jeroiraz Nov 7, 2023
a5408ff
feat(embedded/sql): show users stmt
jeroiraz Nov 7, 2023
0f08305
chore(pkg/server): list users from multidb handler
jeroiraz Nov 7, 2023
b55812f
test(pkg/database): dummy multidb handler
jeroiraz Nov 7, 2023
f2d6319
test(pkg/integration): show users
jeroiraz Nov 8, 2023
ac721a6
test(pkg/integration): show users
jeroiraz Nov 8, 2023
a7afab8
feat(embedded/sql): wip user mgmt
jeroiraz Nov 8, 2023
166ed02
test(embedded/sql): parser upgrade
jeroiraz Nov 9, 2023
0d0916b
chore(embedded/sql): user pwd
jeroiraz Nov 9, 2023
a032651
fix(pkg/server): user creation with multidbs
jeroiraz Nov 10, 2023
8443633
chore(pkg/server): require proper permissions at multidb handler
jeroiraz Nov 13, 2023
2f215a4
test(pkg/integration): user stmts
jeroiraz Nov 13, 2023
cabb046
test(pkg/integration): user stmts
jeroiraz Nov 13, 2023
5b42f80
chore(pkg/pgsql): show table/s
jeroiraz Nov 13, 2023
5f7ac4d
feat(embedded/sql): show table stmt
jeroiraz Nov 13, 2023
11088eb
release: v1.9DOM.1-RC1
jeroiraz Nov 14, 2023
ff7ef43
test(pkg/integration): cover user mgmt edge cases
jeroiraz Nov 15, 2023
0a8bb87
test(pkg/server): auth edge cases
jeroiraz Nov 15, 2023
f28f689
test(pkg/server): cover dummy database edge cases
jeroiraz Nov 15, 2023
440c0eb
chore(pkg/server): change permission automatically revokes existing ones
jeroiraz Nov 15, 2023
1051431
test(pkg/server): use test server in multidb test cases
jeroiraz Nov 15, 2023
5eef3a7
test(embedded/sql): cover sql catalog stmt edge cases
jeroiraz Nov 15, 2023
ed973e1
chore(pkg/pgsql): handle odbc help
jeroiraz Nov 16, 2023
6808ecf
test(pkg/pgsql): cover fixed query for odbc help
jeroiraz Nov 16, 2023
50a3141
test(pkg/pgsql): simplify query machine and cover edge cases
jeroiraz Nov 16, 2023
d5f425e
release: v1.9DOM.1
jeroiraz Nov 16, 2023
de21381
Update README.md
jeroiraz Nov 16, 2023
2d2678a
fix: source /etc/sysconfig/immudb on AWS EC2 startup
SimoneLazzaris Nov 16, 2023
2dc527f
feat: automatically convert uuid strings and byte slices to uuid values
tauu Nov 11, 2023
cc2701f
feat: add s3 (aws) role based auth as an option
NikitaSmall Jun 12, 2023
4ee85fc
fix: correct the test after the merge and latest refactor
NikitaSmall Jun 30, 2023
aafe27e
provide correct error
NikitaSmall Nov 9, 2023
9cfa350
correct minio tests
NikitaSmall Nov 9, 2023
1f57934
add: test for underscore name
SimoneLazzaris Dec 19, 2023
0f41580
chore(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0
dependabot[bot] Dec 18, 2023
b3fcb59
chore(deps): bump golang.org/x/net from 0.17.0 to 0.19.0
dependabot[bot] Dec 19, 2023
5e2cb58
chore(deps): bump github.com/rogpeppe/go-internal from 1.9.0 to 1.12.0
dependabot[bot] Dec 19, 2023
3f4a220
chore(deps): bump golang.org/x/crypto
dependabot[bot] Dec 18, 2023
3263f89
chore(deps): bump golang.org/x/crypto in /test/e2e/truncation
dependabot[bot] Dec 18, 2023
724a312
chore(deps): bump golang.org/x/crypto
dependabot[bot] Dec 18, 2023
018c96b
chore(deps): bump golang.org/x/crypto in /tools/mkdb
dependabot[bot] Dec 18, 2023
7c40a05
chore(deps): bump golang.org/x/crypto in /test/columns
dependabot[bot] Dec 18, 2023
bcfa032
fix: remove influxdb dependencies
SimoneLazzaris Dec 19, 2023
2d12c99
chore: use goveralls token variable
SimoneLazzaris Dec 20, 2023
292e8c5
Revert "Merge remote-tracking branch 'origin/dependabot/go_modules/gi…
SimoneLazzaris Dec 20, 2023
d143b42
chore: add influxdb (needed for performance test) dependency
SimoneLazzaris Dec 20, 2023
6d75264
update license file
SimoneLazzaris Dec 19, 2023
9e26141
license update inside files
SimoneLazzaris Dec 19, 2023
cb1de79
version bump
SimoneLazzaris Dec 20, 2023
601b1de
fix: performance test regression
SimoneLazzaris Dec 21, 2023
ebf17ee
changed workdir for perf-test
SimoneLazzaris Dec 21, 2023
3391381
force version 1.19+ for performance tests
SimoneLazzaris Dec 21, 2023
84b1597
fix memory limit
SimoneLazzaris Dec 21, 2023
80230b3
fix: apply fix for CVE-2023-44487
SimoneLazzaris Dec 28, 2023
4a961ac
chore(deps): bump google.golang.org/protobuf from 1.31.0 to 1.32.0
dependabot[bot] Dec 29, 2023
04e934e
chore(deps): bump google.golang.org/grpc in /test/e2e/truncation
dependabot[bot] Dec 29, 2023
7b89bec
chore(deps): bump actions/download-artifact from 3 to 4
dependabot[bot] Dec 14, 2023
4bc7ace
chore(deps): bump actions/upload-artifact from 3 to 4
dependabot[bot] Dec 27, 2023
fdeebf0
chore(deps): bump actions/setup-go from 3 to 5
dependabot[bot] Dec 6, 2023
ac571ff
Version bump
SimoneLazzaris Dec 29, 2023
65a25a5
Fix: license in readme
SimoneLazzaris Dec 29, 2023
d81804e
Update README.md
moshix Feb 16, 2024
dac7c59
chore(embedded/cache): validate input params before obtaining mutex lock
arturmelanchyk Jan 28, 2024
b2bf20f
chore(embedded/cache): replace sync.Mutex with sync.RWMutex
arturmelanchyk Jan 28, 2024
d52619c
Revert "chore(embedded/cache): replace sync.Mutex with sync.RWMutex"
arturmelanchyk Feb 5, 2024
e293ab6
test with github token
SimoneLazzaris Mar 1, 2024
776d42a
test with sonar token
SimoneLazzaris Mar 1, 2024
c7265c6
Revert "test with github token"
SimoneLazzaris Mar 1, 2024
063d41a
chore: Add support to ARM64
seuros Feb 17, 2024
9b4c8ff
chore: Update GitHub Actions to use checkout@v4
seuros Feb 17, 2024
4ab6211
Add contrib.rocks image
ostafen Apr 7, 2024
a1f23d3
chore: The GitHub workflow push.yml was updated to use the repository…
seuros Apr 8, 2024
5993978
chore: refactor image building
seuros Apr 8, 2024
03c6526
.github/workflows/push.yml
ostafen Apr 11, 2024
a0b7489
Revert changes on push action
ostafen Apr 11, 2024
688fe0a
Use github token instead of coveralls repo token
ostafen Apr 12, 2024
1d02fa8
Create codeql.yml
SimoneLazzaris Apr 12, 2024
d83e7fe
conditional execution of sonarcloud scan
SimoneLazzaris Apr 12, 2024
f93fb8e
Use SONAR_TOKEN
ostafen Apr 12, 2024
bdb2c0b
Update additional reference to SONAR_NEW_TOKEN
ostafen Apr 12, 2024
03213dc
Remove base64 conversion for checking duplicates
ostafen Apr 12, 2024
a4e7599
Add reference implementation
ostafen Apr 13, 2024
fb4b707
Improve validation when establishing psql session
ostafen Apr 3, 2024
bd9e237
Add TestPgsqlServer_InvalidTraffic
ostafen Apr 7, 2024
8a17144
Move check
ostafen Apr 11, 2024
a68b05b
Fix off by one issue with limit option
ostafen Apr 12, 2024
c804ded
Add key len check in UpsertIntoStmt.execAt()
ostafen Apr 12, 2024
e0fab94
Fix test failure
ostafen Apr 12, 2024
986e480
Fix additional test
ostafen Apr 12, 2024
cb48e61
unwrap grpc messages
ostafen Apr 19, 2024
8721fc8
Allow the user to force unsafe password in immuadmin
ostafen Apr 19, 2024
e472617
enrich output of immuadmin status command
ostafen Apr 19, 2024
e9e5c47
chore: fix some comments
deferdeter Apr 16, 2024
68b32d5
Alow order by on non indexed fields
ostafen Apr 26, 2024
865f476
Fix env in Dockerfile.immuadmin and issue in connect() function
ostafen Apr 24, 2024
6a5d096
Enrich output of database list command
ostafen Apr 22, 2024
e56001c
Support index compaction on remote s3 storage
ostafen May 3, 2024
0c8204a
Implement streaming in SQLQuery/TxSQLQuery rpcs
ostafen May 14, 2024
fd9d1bb
Extend support of group by and order by clause
ostafen May 14, 2024
bde091c
Replace LRU with SIEVE replacement policy
ostafen May 17, 2024
03e44c2
Update mattermost action
ostafen May 20, 2024
1d59ec5
Update performance.yml
SimoneLazzaris May 21, 2024
87e13fc
Add UnarySQLQuery rpc for backward compatible http API
ostafen May 20, 2024
40bf1f6
Prevent replication with different replica and primary server versions
ostafen May 21, 2024
4b94bef
Implement memory-bound cache
ostafen May 22, 2024
2e9e86a
remove quotation
SimoneLazzaris May 22, 2024
c74e324
add workflow_dispatch
SimoneLazzaris May 22, 2024
98c9a0b
Fix issue with wrong position of values in raw_reader
ostafen May 22, 2024
d5ba1da
Update version in Makefile
ostafen May 22, 2024
9577064
Fix iteration issue in ServerInfo()
ostafen May 22, 2024
cc2766e
fix stress.yml
SimoneLazzaris May 23, 2024
0aad280
Create /tmp folder in Dockerfile
ostafen May 23, 2024
5487dd3
release: v1.9.3
ostafen May 23, 2024
302e848
Update README.md
moshix May 24, 2024
5f3ddfe
Remove license badge
ostafen May 24, 2024
8de95c5
fix: set mattermost payload
SimoneLazzaris May 24, 2024
a741ec9
Log request information as transaction metadata
ostafen May 30, 2024
bbb1608
Add support for JSON type
ostafen Jun 4, 2024
a147294
Add table of contents and projects section to README
ostafen Jun 7, 2024
a36e4bc
Add CreatedAt and CreatedBy to DatabaseInfo
ostafen May 24, 2024
7784338
Implement CHECK constraints
ostafen Jul 3, 2024
9cb67cd
Update go.sum
ostafen Jul 4, 2024
68c7d59
Update README.md
moshix Jul 15, 2024
10ad005
Prohibite changing transiency of keys
ostafen Jul 22, 2024
3eec9d4
Fix startup failure when remote identifier is not present
ostafen Jul 24, 2024
c189283
Implement SQL permissions
ostafen Jul 23, 2024
0834409
Refactor SQL privileges
ostafen Jul 25, 2024
9237a83
Implement CSV import/export of tables
ostafen Jul 24, 2024
76cd08a
release v1.9.4
ostafen Jul 25, 2024
8b5f651
fix(pkg/pgsql/server): close row readers to release resources
ostafen Aug 7, 2024
8f57d65
Fix AWS Signature V4 using IAM role
lorepas Aug 7, 2024
c0b6e01
chore(embedded/sql): improvements on SQL layer.
ostafen Aug 12, 2024
bf27080
fix: time.Since should not be used in defer statement
druzn3k Aug 20, 2024
2a3d382
chore(embedded/store): improve index flush logic
ostafen Aug 19, 2024
ba68847
fix(pkg/server): run metrics server under HTTPS
ostafen Aug 29, 2024
67f4b0d
chore(pkg/server): implement automatic generation of self-signed HTTP…
ostafen Aug 31, 2024
1e78388
chore(embedded/logging): improve file base logging.
ostafen Sep 10, 2024
d47d3ef
chore(pkg/database): implement database manager
ostafen Sep 16, 2024
dff412a
fix(pkg/dabase): return error when attempting to access deleted database
ostafen Sep 16, 2024
86e956f
release: v1.9.5
ostafen Sep 16, 2024
e77545f
chore(pkg/replication): add replication lag metric
ostafen Sep 19, 2024
51c0742
chore(embedded/sql): Implement CASE statement
ostafen Nov 27, 2024
fef9d8d
chore(embedded/sql): Add support for simple CASE statements
ostafen Nov 27, 2024
0ce2146
chore(embedded/sql): Allow expressions in ORDER BY clauses
ostafen Nov 28, 2024
4cf4af7
chore(embedded/sql): add support for SELECT FROM VALUES syntax
ostafen Nov 29, 2024
344275d
chore(embedded/sql): add support for LEFT JOIN
ostafen Dec 9, 2024
b7ff0e6
fix(embedded/sql): correctly handle logical operator precedence (NOT,…
ostafen Nov 29, 2024
52df5f2
chore(embedded/sql): Add support for core pg_catalog tables (pg_class…
ostafen Dec 11, 2024
cdd00cb
Implement constant selection queries
ostafen Dec 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ resources
/immudata
/Dockerfile*
pkg/integration/replication
webconsole/dist

# Allow FIPS build checker
!build/fips/check-fips.sh
!build/fips/check-fips.sh
96 changes: 96 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
push:
branches: [ "master", "*", "develop" ]
pull_request:
branches: [ "master", "*", "develop" ]
schedule:
- cron: '39 20 * * 0'

jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
- language: go
build-mode: autobuild
- language: javascript-typescript
build-mode: none
- language: python
build-mode: none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
38 changes: 25 additions & 13 deletions .github/workflows/performance.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Performance tests

on:
workflow_dispatch:
workflow_call:
inputs:
go-version:
Expand Down Expand Up @@ -31,7 +32,7 @@ jobs:
RES="$(echo "${PERF_TEST_RUNS_ON:-${PERF_TEST_RUNS_ON_DEFAULT}}" | jq -c '.targets')"
echo "Detected targets:"
echo "$RES" | jq .
echo "::set-output name=matrix::${RES}"
echo "matrix=${RES}" >> $GITHUB_OUTPUT

performance-test-suite:
name: Performance Test Suite (${{ matrix.target.name }})
Expand All @@ -42,36 +43,47 @@ jobs:
target: ${{ fromJson(needs.performance-test-suite-detect-runners.outputs.matrix) }}
runs-on: ${{ matrix.target.runs-on }}
env:
ARG_DURATION: "${{ startsWith(github.ref, 'refs/tags/v') && '-d 10m' || '' }}"
ARG_DURATION: "${{ startsWith(github.ref, 'refs/tags/v') && '-d 2m' || '' }}"
INFLUX_HOST: ${{ secrets.INFLUX_HOST }}
INFLUX_TOKEN: ${{ secrets.INFLUX_TOKEN }}
steps:
- uses: actions/setup-go@v3
- uses: actions/setup-go@v5
with:
go-version: ${{ inputs.go-version }}
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: go build -o perf-test-suite ./test/performance-test-suite/cmd/perf-test/
- name: Run performance tests
id: performance
run: ./perf-test-suite $ARG_DURATION > perf-test-results.json
run: |
echo "version=$(cat Makefile | grep '\<VERSION=' | awk -F= '{print $2}' | tr -d [\',])" >> $GITHUB_ENV
SECONDS=0
./perf-test-suite $ARG_DURATION -workdir /var/tmp -host $INFLUX_HOST -token $INFLUX_TOKEN -runner ${{ matrix.target.name }} -version $(cat Makefile | grep '\<VERSION=' | awk -F= '{print $2}' | tr -d [\',]) > perf-test-results-with-summaries.txt
echo "duration=$SECONDS" >> $GITHUB_ENV
sed '/^{/,/^}/!d' perf-test-results-with-summaries.txt > perf-test-results.json
env:
GOMEMLIMIT: 7680MiB
- name: Upload test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Performance Test Results (${{ matrix.target.name }})
path: perf-test-results.json
retention-days: 30
- name: Create the Mattermost message
if: github.event.schedule == '0 0 * * *'
run: >
echo "{\"text\":\"### Performance tests results for scheduled daily run on branch ${{ github.ref_name }} and runner ${{ matrix.target.name }}\n
echo "{\"text\":\"### Performance tests results for scheduled daily run on ${{ github.ref_name }} branch and ${{ matrix.target.name }} runner\n
**Result**: ${{ steps.performance.outcome }}\n
**Duration**: ${{ env.duration }}s | **immudb version**: ${{ env.version }}\n
$(jq -r '.benchmarks[] | .name + "\n" + .summary' perf-test-results.json) \n
**Check details [here](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})**
\"}" > mattermost.json
\"}" > mattermost.json && echo MM_PAYLOAD=$(cat mattermost.json) >> $GITHUB_ENV
- name: Notify on immudb channel on Mattermost
if: github.event.schedule == '0 0 * * *'
uses: mattermost/action-mattermost-notify@master
env:
with:
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
MATTERMOST_CHANNEL: 'immudb'
MATTERMOST_CHANNEL: 'immudb-tests'
PAYLOAD: ${{ env.MM_PAYLOAD }}

performance-test-suite-upload-s3:
if: github.event.schedule != '0 0 * * *'
Expand All @@ -85,17 +97,17 @@ jobs:
env:
PERF_TEST_AWS_REGION: ${{ secrets.PERF_TEST_AWS_REGION }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Download test results
if: "${{ env.PERF_TEST_AWS_REGION }}"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: Performance Test Results (${{ matrix.target.name }})

- name: Configure AWS credentials
if: "${{ env.PERF_TEST_AWS_REGION }}"
uses: aws-actions/configure-aws-credentials@v1
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: "${{ secrets.PERF_TEST_AWS_ACCESS_KEY_ID }}"
aws-secret-access-key: "${{ secrets.PERF_TEST_AWS_SECRET_ACCESS_KEY }}"
Expand Down
52 changes: 34 additions & 18 deletions .github/workflows/pull.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,6 @@ jobs:
strategy:
matrix:
include:
- os: ubuntu-latest
go: "1.15"

- os: ubuntu-latest
go: "1.16"

- os: ubuntu-latest
go: "1.17"

Expand All @@ -40,11 +34,11 @@ jobs:

runs-on: ${{ matrix.os }}
steps:
- uses: actions/setup-go@v3
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}

- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Test
run: make test
Expand Down Expand Up @@ -84,7 +78,7 @@ jobs:
- name: Build with webconsole
run: |
sudo apt update && sudo apt install curl -y
WEBCONSOLE=default make all
WEBCONSOLE=default SWAGGER=true make all
if: "!matrix.noWebconsole"

- name: Build without webconsole
Expand All @@ -105,6 +99,7 @@ jobs:
set -euxo pipefail
${IMMUCLIENT} || echo "Test #1 OK - immuclient failed to connect (no server started)"
${IMMUDB} -d
sleep 5
${IMMUCLIENT} login --username immudb --password immudb || { echo "Test #2 Login (Default credentials) Failed"; exit 1; }
echo -n "immudb" | ${IMMUCLIENT} login --username immudb || { echo "Test #3 Login (Default credentials from stdin) Failed"; exit 1; }
${IMMUCLIENT} safeset test3 githubaction || { echo "Test #4 Failed to safeset simple values"; exit 1; }
Expand All @@ -121,14 +116,26 @@ jobs:
webconsole_page=$(curl -s localhost:8080) || { echo "Test #8 web console unreachable"; exit 1; }
grep -q "<title>immudb webconsole</title>" <<< $webconsole_page || { echo "Test #9 Failed, web console reachable but title not found"; exit 1; }

gosec:
name: Run Gosec Security Scanner
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- uses: actions/checkout@v4
- uses: securego/[email protected]
with:
args: -fmt=json -out=results-$JOB_ID.json -no-fail ./...

coveralls:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
- uses: actions/setup-go@v5
with:
go-version: "1.18"
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: |
# Spawn minio docker container in the background
docker run -d -t -p 9000:9000 --name minio \
Expand All @@ -144,12 +151,21 @@ jobs:

export PATH=$PATH:$(go env GOPATH)/bin
set -o pipefail
./scripts/go-acc ./... --covermode=atomic --ignore test,immuclient,immuadmin,helper,cmdtest,sservice,version,tools --tags minio || true
cat coverage.txt | grep -v "schema.pb" | grep -v "schema_grpc.pb" | grep -v "immuclient" | grep -v "immuadmin" | grep -v "helper" | grep -v "cmdtest" | grep -v "sservice" | grep -v "version" | grep -v "tools" > coverage.out
./scripts/goveralls -coverprofile=coverage.out -service=gh-ci -repotoken ${{ secrets.COVERALLS_TOKEN }}
./ext-tools/go-acc ./... --covermode=atomic --ignore test,immuclient,immuadmin,helper,fs,cmdtest,sservice,version,tools,webconsole,protomodel,schema,swagger --tags minio || true
cat coverage.txt | grep -v "test" | grep -v "schema" | grep -v "protomodel" | grep -v "swagger" | grep -v "webserver.go" | grep -v "immuclient" | grep -v "immuadmin" | grep -v "helper" | grep -v "fs" | grep -v "cmdtest" | grep -v "sservice" | grep -v "version" | grep -v "tools" | grep -v "webconsole" > coverage.out
./ext-tools/goveralls -coverprofile=coverage.out -service=gh-ci

# Stop minio
docker rm -f minio
env:
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}

sonarsource:
name: Coverage
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
steps:
- uses: actions/checkout@v4
- name: Analyze with SonarCloud
uses: sonarsource/sonarcloud-github-action@master
env:
Expand Down Expand Up @@ -177,7 +193,7 @@ jobs:
RES="$(echo "${PERF_TEST_RUNS_ON:-${PERF_TEST_RUNS_ON_DEFAULT}}" | jq -c '.targets')"
echo "Detected targets:"
echo "$RES" | jq .
echo "::set-output name=matrix::${RES}"
echo "matrix=${RES}" >> $GITHUB_OUTPUT

performance-test-suite:
needs: performance-test-suite-detect-runners
Expand All @@ -187,14 +203,14 @@ jobs:
name: Performance Test Suite (${{ matrix.target.name }})
runs-on: ${{ matrix.target.runs-on }}
steps:
- uses: actions/setup-go@v3
- uses: actions/setup-go@v5
with:
go-version: "1.18"
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: go build -o perf-test-suite ./test/performance-test-suite/cmd/perf-test/
- run: ./perf-test-suite > perf-test-results.json
- name: Upload test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Performance Test Results (${{ matrix.target.name }})
path: perf-test-results.json
27 changes: 27 additions & 0 deletions .github/workflows/push-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: build-push-dev

env:
GO_VERSION: "1.18"
MIN_SUPPORTED_GO_VERSION: "1.17"

on:
push:
branches:
- feat/objects

jobs:
build:
name: build and push
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- uses: actions/checkout@v4
- run: |
GITTAG=$(git rev-parse HEAD | head -c 8)
docker build -t ${{ vars.DOCKER_HUB_USER }}/immudb-dev1:$GITTAG .
docker image tag ${{ vars.DOCKER_HUB_USER }}/immudb-dev1:$GITTAG ${{ vars.DOCKER_HUB_USER }}/immudb-dev1:latest
docker login -u "${{ secrets.REGISTRY_USER }}" -p "${{ secrets.REGISTRY_PASS }}"
docker image push ${{ vars.DOCKER_HUB_USER }}/immudb-dev1:$GITTAG
docker image push ${{ vars.DOCKER_HUB_USER }}/immudb-dev1:latest
Loading