diff --git a/.github/workflows/02-steampipe-db-image-build.yaml b/.github/workflows/02-steampipe-db-image-build.yaml index 80d102b15..4ad88f2fe 100644 --- a/.github/workflows/02-steampipe-db-image-build.yaml +++ b/.github/workflows/02-steampipe-db-image-build.yaml @@ -9,12 +9,12 @@ on: Version number for the OCI image for this release - usually the same as the postgres version required: true - default: 14.17.0 + default: 14.19.0 postgres_version: description: "Postgres Version to package (eg 14.2.0)" required: true - default: 14.17.0 + default: 14.19.0 env: PROJECT_ID: steampipe @@ -78,32 +78,32 @@ jobs: - name: Pull & Extract - darwin amd64 run: |- EXTRACT_DIR=extracted-darwin-amd64 - # new link (darwin-amd64.txz) - https://drive.google.com/file/d/12fxd_jZxdP4Ilwd0BnefbVCLZV957TNJ/view?usp=drive_link - curl -L -o darwin-amd64.txz "https://drive.google.com/uc?export=download&id=12fxd_jZxdP4Ilwd0BnefbVCLZV957TNJ" + # new link (darwin-amd64.txz) - https://drive.google.com/file/d/14t83HKLJ-ckLwgqRnkVPMTeaw5wMoPu2/view?usp=drive_link + curl -L -o darwin-amd64.txz "https://drive.google.com/uc?export=download&id=14t83HKLJ-ckLwgqRnkVPMTeaw5wMoPu2" mkdir $EXTRACT_DIR tar -xf darwin-amd64.txz --directory $EXTRACT_DIR - name: Pull & Extract - darwin arm64 run: |- EXTRACT_DIR=extracted-darwin-arm64 - # new link (darwin-arm64.txz) - https://drive.google.com/file/d/1lG6eNYM5JaywbRxQBubzMDmbCtGVilQh/view?usp=drive_link - curl -L -o darwin-arm64.txz "https://drive.google.com/uc?export=download&id=1lG6eNYM5JaywbRxQBubzMDmbCtGVilQh" + # new link (darwin-arm64.txz) - https://drive.google.com/file/d/1UXdLn9aNDY_5OVLjgwF_cAPKiAsxHHB-/view?usp=drive_link + curl -L -o darwin-arm64.txz "https://drive.google.com/uc?export=download&id=1UXdLn9aNDY_5OVLjgwF_cAPKiAsxHHB-" mkdir $EXTRACT_DIR tar -xf darwin-arm64.txz --directory $EXTRACT_DIR - name: Pull & Extract - linux amd64 run: |- EXTRACT_DIR=extracted-linux-amd64 - # new link (linux-amd64.txz) - https://drive.google.com/file/d/11pqDcTtlD7RF5LPj-X4gRVfl4mk00fuy/view?usp=drive_link - curl -L -o linux-amd64.txz "https://drive.google.com/uc?export=download&id=11pqDcTtlD7RF5LPj-X4gRVfl4mk00fuy" + # new link (linux-amd64.txz) - https://drive.google.com/file/d/1CetXFMZZRAtkVr4gCTlcJcOfIm0wyyYn/view?usp=drive_link + curl -L -o linux-amd64.txz "https://drive.google.com/uc?export=download&id=1CetXFMZZRAtkVr4gCTlcJcOfIm0wyyYn" mkdir $EXTRACT_DIR tar -xf linux-amd64.txz --directory $EXTRACT_DIR - name: Pull & Extract - linux arm64 run: |- EXTRACT_DIR=extracted-linux-arm64 - # new link (linux-arm64.txz) - https://drive.google.com/file/d/1lpjyHegwd_8574uVWgaPB31yR7vRB8Zh/view?usp=drive_link - curl -L -o linux-arm64.txz "https://drive.google.com/uc?export=download&id=1lpjyHegwd_8574uVWgaPB31yR7vRB8Zh" + # new link (linux-arm64.txz) - https://drive.google.com/file/d/1ce43gJu8HPAufcsZEk87uFPyT6fGEair/view?usp=drive_link + curl -L -o linux-arm64.txz "https://drive.google.com/uc?export=download&id=1ce43gJu8HPAufcsZEk87uFPyT6fGEair" mkdir $EXTRACT_DIR tar -xf linux-arm64.txz --directory $EXTRACT_DIR @@ -160,10 +160,10 @@ jobs: extracted-linux-amd64:application/vnd.turbot.steampipe.db.linux-amd64.layer.v1+tar \ extracted-linux-arm64:application/vnd.turbot.steampipe.db.linux-arm64.layer.v1+tar - # check if the version is NOT an rc version before tagging as latest + # check if the version is NOT an pre-release version before tagging as latest if [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "Tagging as latest: $LATEST_REF" oras tag $REF latest else - echo "Skipping latest tag for rc version: $VERSION" + echo "Skipping latest tag for pre-release version: $VERSION" fi diff --git a/.github/workflows/11-test-acceptance.yaml b/.github/workflows/11-test-acceptance.yaml index b863fa746..8f3fad363 100644 --- a/.github/workflows/11-test-acceptance.yaml +++ b/.github/workflows/11-test-acceptance.yaml @@ -67,7 +67,9 @@ jobs: run: | mkdir ~/artifacts mv $GITHUB_WORKSPACE/steampipe/dist/steampipe_linux_amd64.tar.gz ~/artifacts/linux.tar.gz + mv $GITHUB_WORKSPACE/steampipe/dist/steampipe_linux_arm64.tar.gz ~/artifacts/linux-arm64.tar.gz mv $GITHUB_WORKSPACE/steampipe/dist/steampipe_darwin_arm64.zip ~/artifacts/darwin.zip + mv $GITHUB_WORKSPACE/steampipe/dist/steampipe_darwin_amd64.zip ~/artifacts/darwin-amd64.zip - name: List Build Artifacts run: ls -l ~/artifacts @@ -80,14 +82,6 @@ jobs: if-no-files-found: error overwrite: true - - name: Save MacOS Build Artifact - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: build-artifact-darwin - path: ~/artifacts/darwin.zip - if-no-files-found: error - overwrite: true - acceptance_test: name: Test needs: goreleaser @@ -146,20 +140,7 @@ jobs: name: build-artifact-linux path: ~/artifacts - - name: Download Darwin Build Artifacts - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 - if: ${{ matrix.platform == 'macos-latest' }} - with: - name: build-artifact-darwin - path: ~/artifacts - - - name: Extract Darwin Artifacts and Install Binary - if: ${{ matrix.platform == 'macos-latest' }} - run: | - mkdir ~/build - unzip ~/artifacts/darwin.zip -d ~/build - - - name: Extract Ubuntu Artifacts and Install Binary + - name: Extract Linux Artifacts and Install Binary if: ${{ matrix.platform == 'ubuntu-latest' }} run: | mkdir ~/build @@ -167,20 +148,21 @@ jobs: - name: Set PATH run: | - echo "PATH=$PATH:$HOME/build:$GTIHUB_WORKSPACE/tests/acceptance/lib/bats-core/libexec" >> $GITHUB_ENV + echo "PATH=$PATH:$HOME/build:$GITHUB_WORKSPACE/tests/acceptance/lib/bats-core/libexec" >> $GITHUB_ENV - name: Go install jd - run: | + run: |- go install github.com/josephburnett/jd@latest - name: Install DB id: install-db continue-on-error: false run: | - steampipe query "select 1" + STEAMPIPE_LOG_LEVEL=trace steampipe query "select 1" steampipe plugin install chaos chaosdynamic --progress=false - name: Save Install DB Logs + if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: install-db-logs-${{ matrix.test_block }}-${{ matrix.platform }} diff --git a/design/embedded_postgres_build_instructions.md b/design/embedded_postgres_build_instructions.md new file mode 100644 index 000000000..aec43675d --- /dev/null +++ b/design/embedded_postgres_build_instructions.md @@ -0,0 +1,241 @@ +# PostgreSQL Source Build Instructions + +This document provides step-by-step instructions for building the embedded PostgreSQL binaries required by Steampipe for a specific PostgreSQL version. It covers both macOS and Linux environments, including prerequisites, build steps, and packaging guidelines to ensure the resulting binaries are relocatable and suitable for Steampipe's use. + +1. **Source Code:** + [https://www.postgresql.org/ftp/source/](https://www.postgresql.org/ftp/source/) + +2. **Build Documentation:** + [https://www.postgresql.org/docs/current/install-make.html](https://www.postgresql.org/docs/current/install-make.html) + +--- + +## 3. Download Source Code and Run + +### For MacOS + +#### 3.1. Pre-requisites + +* `openssl` + +--- + +#### 3.2. Steps to Build + +1. Change to the PostgreSQL source directory: + + ```bash + cd /postgres/source/dir + ``` + +2. Set environment variables: + + ```bash + export MACOSX_DEPLOYMENT_TARGET=11.0 + export CFLAGS="-mmacosx-version-min=11.0" + export LDFLAGS="-mmacosx-version-min=11.0 -Wl,-rpath,@loader_path/../lib/postgresql" + ``` + + *(Rebuild with an older deployment target)* + +3. Configure the build: + + ```bash + ./configure --prefix=location/where/you/want/the/files \ + --libdir=/location/where/you/want/the/files/lib/postgresql \ + --datadir=/location/where/you/want/the/files/share/postgresql \ + --with-openssl \ + --with-includes=$(brew --prefix openssl)/include \ + --with-libraries=$(brew --prefix openssl)/lib + ``` + + *(Make sure the `libdir` and `datadir` args are passed correctly and point to the `postgresql` dir inside `lib` and `share` — this is needed for Steampipe.)* + +4. Build PostgreSQL: + + ```bash + make -j$(sysctl -n hw.ncpu) + ``` + +5. Install binaries: + + ```bash + make install + ``` + +6. Verify that all binaries are built in the specified location. + +7. Build contrib modules: + + ```bash + make -C contrib + ``` + +8. Install contrib modules: + + ```bash + make -C contrib install + ``` + +9. *(This builds extensions in the contrib directory — needed since we load `ltree` and `tablefunc`.)* + +10. Verify installation structure: + + ```bash + ls -al location/where/you/want/the/files + ``` + + You should see `lib`, `share`, `bin`, and `include` directories under that path. + +11. Remove the `include` directory. + +12. Remove unneeded binaries from `bin`. + +13. Check that all extensions exist. + +--- + +#### 3.3. Fix RPATHs + +Run the `fix_rpath.sh` script to fix the rpaths of the binaries (`initdb`, `pg_restore`, `pg_dump`): + +```bash +#!/bin/bash +set -euo pipefail + +# --- CONFIGURE --- +# Adjust if your libpq lives in lib/ not lib/postgresql +LIB_SUBDIR="lib/postgresql" +BUNDLE_ROOT="$(pwd)" +LIBPQ_PATH="$BUNDLE_ROOT/$LIB_SUBDIR/libpq.5.dylib" + +echo "🔧 Fixing libpq install name..." +install_name_tool -id "@rpath/libpq.5.dylib" "$LIBPQ_PATH" + +echo "🔍 Processing binaries in bin/..." +for binfile in "$BUNDLE_ROOT"/bin/*; do + [[ -x "$binfile" && ! -d "$binfile" ]] || continue + echo "➡️ Patching $(basename "$binfile")" + + # Ensure an rpath to ../lib/postgresql exists + install_name_tool -add_rpath "@loader_path/../$LIB_SUBDIR" "$binfile" 2>/dev/null || true + + # Rewrite any absolute reference to libpq + install_name_tool -change "$BUNDLE_ROOT/$LIB_SUBDIR/libpq.5.dylib" "@rpath/libpq.5.dylib" "$binfile" 2>/dev/null || true +done + +echo "✅ Verification:" +for binfile in "$BUNDLE_ROOT"/bin/*; do + [[ -x "$binfile" && ! -d "$binfile" ]] || continue + echo "--- $(basename "$binfile") ---" + otool -L "$binfile" | grep libpq || echo "⚠️ No libpq linkage" + otool -l "$binfile" | grep -A2 LC_RPATH | grep path || echo "⚠️ No RPATH" +done +``` + +--- + +#### 3.4. Pack the Built Binaries + +Create a `.txz` archive: + +```bash +tar --disable-copyfile --exclude='._*' -cJf darwin-arm64.txz -C darwin-arm64 bin lib share +``` + +--- + +### For Linux (Ubuntu 24 / amd64 or arm64) + +#### 3.5. Pre-requisites + +```bash +apt update +apt install -y build-essential wget ca-certificates \ + libreadline-dev zlib1g-dev flex bison \ + libssl-dev patchelf file +``` + +--- + +#### 3.6. Steps to Build + +1. Change to the PostgreSQL source directory: + + ```bash + cd /postgres/source/dir + ``` + +2. Set installation prefix and linker flags: + + ```bash + export PREFIX=/postgres-binaries-14.19/linux-$(uname -m) + mkdir -p "$PREFIX" + export LDFLAGS='-Wl,-rpath,$ORIGIN/../lib/postgresql -Wl,--enable-new-dtags' + ``` + +3. Configure: + + ```bash + ./configure \ + --prefix="$PREFIX" \ + --libdir="$PREFIX/lib/postgresql" \ + --datadir="$PREFIX/share/postgresql" \ + --with-openssl \ + --with-includes=/usr/include \ + --with-libraries=/usr/lib/$(uname -m)-linux-gnu + ``` + +4. Build and install: + + ```bash + make -j2 + make install + ``` + +5. Build contrib extensions: + + ```bash + make -C contrib -j2 + make -C contrib install + ``` + +6. Patch RPATHs for relocatability: + + ```bash + cd "$PREFIX" + for f in bin/*; do + if [ -x "$f" ] && file "$f" | grep -q ELF; then + patchelf --set-rpath '$ORIGIN/../lib/postgresql' "$f" + fi + done + ``` + +7. Verify RPATH: + + ```bash + readelf -d bin/initdb | grep -i rpath + # → RUNPATH [$ORIGIN/../lib/postgresql] + ``` + +8. Verify linkage: + + ```bash + ldd bin/initdb | grep libpq + # → libpq.so.5 => .../bin/../lib/postgresql/libpq.so.5 + ``` + +9. Remove `include` directory and unnecessary binaries: + + ```bash + rm -rf "$PREFIX/include" + ``` + +10. Pack into `.txz`: + +```bash +cd $(dirname "$PREFIX") +tar -cJf postgres-14.19-$(uname -m).txz $(basename "$PREFIX") +``` + +✅ **Done.** diff --git a/pkg/constants/db.go b/pkg/constants/db.go index 44da0ecd3..46609a437 100644 --- a/pkg/constants/db.go +++ b/pkg/constants/db.go @@ -27,12 +27,12 @@ const ( // constants for installing db and fdw images const ( - DatabaseVersion = "14.17.0" + DatabaseVersion = "14.19.0" FdwVersion = "2.1.3" // PostgresImageRef is the OCI Image ref for the database binaries - PostgresImageRef = "ghcr.io/turbot/steampipe/db:14.17.0" - PostgresImageDigest = "sha256:4d66131a30139b2b912abe17bcd93c6b4e6a89224874960fea0f141ca51168e7" + PostgresImageRef = "ghcr.io/turbot/steampipe/db:14.19.0" + PostgresImageDigest = "sha256:346d096caf87a6886fd404594ac6b72abee0b166236711fdc6c3d347c099e61f" FdwImageRef = "ghcr.io/turbot/steampipe/fdw:" + FdwVersion FdwBinaryFileName = "steampipe_postgres_fdw.so" diff --git a/pkg/db/db_local/backup.go b/pkg/db/db_local/backup.go index bd5704241..350e47405 100644 --- a/pkg/db/db_local/backup.go +++ b/pkg/db/db_local/backup.go @@ -332,7 +332,7 @@ func runRestoreUsingList(ctx context.Context, info *RunningDBInstanceInfo, listF fmt.Sprintf("--username=%s", constants.DatabaseSuperUser), ) - log.Println("[TRACE]", cmd.String()) + log.Println("[TRACE] pg_restore command:", cmd.String()) if output, err := cmd.CombinedOutput(); err != nil { log.Println("[TRACE] runRestoreUsingList process:", string(output)) diff --git a/pkg/db/db_local/install.go b/pkg/db/db_local/install.go index 40f1fb477..4ae82b788 100644 --- a/pkg/db/db_local/install.go +++ b/pkg/db/db_local/install.go @@ -27,7 +27,7 @@ import ( var ensureMux sync.Mutex func noBackupWarning() string { - warningMessage := `Steampipe database has been upgraded from Postgres 14.2 to Postgres 14.17. + warningMessage := `Steampipe database has been upgraded from Postgres 14.17 to Postgres 14.19. Unfortunately the data in your public schema failed migration using the standard pg_dump and pg_restore tools. Your data has been preserved in the ~/.steampipe/db directory. diff --git a/pkg/db/db_local/start_services.go b/pkg/db/db_local/start_services.go index 4960c07dc..69cbc0ba7 100644 --- a/pkg/db/db_local/start_services.go +++ b/pkg/db/db_local/start_services.go @@ -648,11 +648,13 @@ func FindAllSteampipePostgresInstances(ctx context.Context) ([]*psutils.Process, var instances []*psutils.Process allProcesses, err := psutils.ProcessesWithContext(ctx) if err != nil { + log.Println("[TRACE] FindAllSteampipePostgresInstances - error retrieving process list: ", err.Error()) return nil, err } for _, p := range allProcesses { cmdLine, err := p.CmdlineSliceWithContext(ctx) if err != nil { + log.Printf("[TRACE] FindAllSteampipePostgresInstances - error retrieving cmdline for pid %d: %s", p.Pid, err.Error()) return nil, err } if isSteampipePostgresProcess(ctx, cmdLine) { diff --git a/tests/acceptance/test_files/installation.bats b/tests/acceptance/test_files/installation.bats index 41b95b065..450be50a5 100644 --- a/tests/acceptance/test_files/installation.bats +++ b/tests/acceptance/test_files/installation.bats @@ -9,7 +9,7 @@ load "$LIB_BATS_SUPPORT/load.bash" steampipe query "select 1" --install-dir $target_install_directory # check postgres binary is present in correct location - run file $target_install_directory/db/14.17.0/postgres/bin/postgres + run file $target_install_directory/db/14.19.0/postgres/bin/postgres if [[ "$arch" == "x86_64" && "$os" == "Darwin" ]]; then assert_output --partial 'Mach-O 64-bit executable x86_64' elif [[ "$arch" == "arm64" && "$os" == "Darwin" ]]; then @@ -21,7 +21,7 @@ load "$LIB_BATS_SUPPORT/load.bash" fi # check initdb binary is present in the correct location - run file $target_install_directory/db/14.17.0/postgres/bin/initdb + run file $target_install_directory/db/14.19.0/postgres/bin/initdb if [[ "$arch" == "arm64" && "$os" == "Darwin" ]]; then assert_output --partial 'Mach-O 64-bit executable arm64' elif [[ "$arch" == "x86_64" && "$os" == "Darwin" ]]; then @@ -33,7 +33,7 @@ load "$LIB_BATS_SUPPORT/load.bash" fi # check fdw binary(steampipe_postgres_fdw.so) is present in the correct location - run file $target_install_directory/db/14.17.0/postgres/lib/postgresql/steampipe_postgres_fdw.so + run file $target_install_directory/db/14.19.0/postgres/lib/postgresql/steampipe_postgres_fdw.so if [[ "$arch" == "arm64" && "$os" == "Darwin" ]]; then assert_output --partial 'Mach-O 64-bit bundle arm64' elif [[ "$arch" == "x86_64" && "$os" == "Darwin" ]]; then @@ -45,7 +45,7 @@ load "$LIB_BATS_SUPPORT/load.bash" fi # check fdw extension(steampipe_postgres_fdw.control) is present in the correct location - run file $target_install_directory/db/14.17.0/postgres/share/postgresql/extension/steampipe_postgres_fdw.control + run file $target_install_directory/db/14.19.0/postgres/share/postgresql/extension/steampipe_postgres_fdw.control assert_output --partial 'ASCII text' } diff --git a/tests/acceptance/test_files/migration.bats b/tests/acceptance/test_files/migration.bats index 579307471..7bf35b620 100644 --- a/tests/acceptance/test_files/migration.bats +++ b/tests/acceptance/test_files/migration.bats @@ -75,6 +75,78 @@ load "$LIB_BATS_SUPPORT/load.bash" rm -f verify* } +@test "verify data is properly migrated when upgrading from v2.2.0" { + # setup sql statements + setup_sql[0]="create table sample(sample_col_1 char(10), sample_col_2 char(10))" + setup_sql[1]="insert into sample(sample_col_1,sample_col_2) values ('foo','bar')" + setup_sql[2]="insert into sample(sample_col_1,sample_col_2) values ('foo1','bar1')" + setup_sql[3]="create function sample_func() returns integer as 'select 1 as result;' language sql;" + + # verify sql statements + verify_sql[0]="select * from sample" + verify_sql[1]="select * from sample_func()" + + # create a temp directory to install steampipe(2.2.0) + tmpdir="$(mktemp -d)" + mkdir -p "${tmpdir}" + tmpdir="${tmpdir%/}" + + # find the name of the zip file as per OS and arch + case $(uname -sm) in + "Darwin x86_64") target="darwin_amd64.zip" ;; + "Darwin arm64") target="darwin_arm64.zip" ;; + "Linux x86_64") target="linux_amd64.tar.gz" ;; + "Linux aarch64") target="linux_arm64.tar.gz" ;; + *) echo "Error: '$(uname -sm)' is not supported yet." 1>&2;exit 1 ;; + esac + + # download the zip and extract + steampipe_uri="https://github.com/turbot/steampipe/releases/download/v2.2.0/steampipe_${target}" + case $(uname -s) in + "Darwin") zip_location="${tmpdir}/steampipe.zip" ;; + "Linux") zip_location="${tmpdir}/steampipe.tar.gz" ;; + *) echo "Error: steampipe is not supported on '$(uname -s)' yet." 1>&2;exit 1 ;; + esac + curl --fail --location --progress-bar --output "$zip_location" "$steampipe_uri" + tar -xf "$zip_location" -C "$tmpdir" + + # start the service + $tmpdir/steampipe --install-dir $tmpdir service start + + # execute the setup sql statements + for ((i = 0; i < ${#setup_sql[@]}; i++)); do + $tmpdir/steampipe --install-dir $tmpdir query "${setup_sql[$i]}" + done + + # store the result of the verification statements(1.0.3) + for ((i = 0; i < ${#verify_sql[@]}; i++)); do + $tmpdir/steampipe --install-dir $tmpdir query "${verify_sql[$i]}" > verify$i.txt + done + + # stop the service + $tmpdir/steampipe --install-dir $tmpdir service stop + + # Now run this version - which should migrate the data + steampipe --install-dir $tmpdir service start + + # store the result of the verification statements(0.14.*) + for ((i = 0; i < ${#verify_sql[@]}; i++)); do + echo "VerifySQL: ${verify_sql[$i]}" + steampipe --install-dir $tmpdir query "${verify_sql[$i]}" > verify$i$i.txt + done + + # stop the service + steampipe --install-dir $tmpdir service stop + + # verify data is migrated correctly + for ((i = 0; i < ${#verify_sql[@]}; i++)); do + assert_equal "$(cat verify$i.txt)" "$(cat verify$i$i.txt)" + done + + rm -rf $tmpdir + rm -f verify* +} + function teardown_file() { # list running processes ps -ef | grep steampipe diff --git a/tests/acceptance/test_files/ssl.bats b/tests/acceptance/test_files/ssl.bats index 493ce8d92..7906f056f 100644 --- a/tests/acceptance/test_files/ssl.bats +++ b/tests/acceptance/test_files/ssl.bats @@ -5,7 +5,7 @@ load "$LIB_BATS_SUPPORT/load.bash" current_year=$(date +"%Y") steampipe service start - run openssl x509 -enddate -noout -in $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/root.crt + run openssl x509 -enddate -noout -in $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/root.crt echo $output # check enddate assert_output --partial "notAfter=Dec 31 23:59:59 9999 GMT" @@ -13,7 +13,7 @@ load "$LIB_BATS_SUPPORT/load.bash" server_expiry=$((current_year + 3)) echo $server_expiry - run openssl x509 -enddate -noout -in $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.crt + run openssl x509 -enddate -noout -in $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.crt echo $output # check enddate assert_output --partial "$server_expiry" @@ -23,25 +23,25 @@ load "$LIB_BATS_SUPPORT/load.bash" steampipe service start # save file hash - run cksum $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/root.crt + run cksum $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/root.crt id_root=$(echo $output | awk '{print $1}') echo $id_root # save file hash - run cksum $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.crt + run cksum $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.crt id_server=$(echo $output | awk '{print $1}') echo $id_server steampipe service restart # check file hash after restart - run cksum $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/root.crt + run cksum $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/root.crt id_root_new=$(echo $output | awk '{print $1}') echo $id_root_new assert_equal $id_root $id_root_new # check file hash after restart - run cksum $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.crt + run cksum $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.crt id_server_new=$(echo $output | awk '{print $1}') echo $id_server_new @@ -52,17 +52,17 @@ load "$LIB_BATS_SUPPORT/load.bash" @test "deleting root certificate, service start should regenerate server and root certs" { # save file hash - run cksum $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.crt + run cksum $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.crt id_server=$(echo $output | awk '{print $1}') echo $id_server # delete root certificate - rm -f $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/root.crt + rm -f $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/root.crt steampipe service start # save new file hash - run cksum $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.crt + run cksum $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.crt id_server_new=$(echo $output | awk '{print $1}') echo $id_server_new @@ -78,9 +78,9 @@ load "$LIB_BATS_SUPPORT/load.bash" @test "adding an encrypted private key should work fine and service should start successfully" { skip "TODO update test and enable later" - run openssl genrsa -aes256 -out $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.key -passout pass:steampipe -traditional 2048 + run openssl genrsa -aes256 -out $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.key -passout pass:steampipe -traditional 2048 - run openssl req -key $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.key -passin pass:steampipe -new -x509 -out $STEAMPIPE_INSTALL_DIR/db/14.17.0/data/server.crt -subj "/CN=steampipe.io" + run openssl req -key $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.key -passin pass:steampipe -new -x509 -out $STEAMPIPE_INSTALL_DIR/db/14.19.0/data/server.crt -subj "/CN=steampipe.io" steampipe service start --database-password steampipe }