1
0
mirror of https://github.com/cmur2/dyndnsd.git synced 2025-08-08 08:33:56 +02:00

Compare commits

...

76 Commits

Author SHA1 Message Date
Christian Nicolai
a54235fcf2 release: 3.9.1 2023-07-06 09:04:57 +02:00
renovate[bot]
be87ba8f31 project: update aquasecurity/trivy to v0.43.0 2023-07-06 08:59:47 +02:00
depfu[bot]
5e947316f6 gems: update rubocop to version 1.54.0 2023-07-02 13:58:49 +02:00
cn
c71b23d35e ci: fix linting 2023-07-02 13:56:53 +02:00
cn
2258edaae6 ci: remove usage of deprecated solargraph download-core cmd
Related to cf1cd66307
2023-06-24 16:38:21 +02:00
depfu[bot]
f8878077cf gems: update rubocop to version 1.53.0 2023-06-24 16:34:01 +02:00
renovate[bot]
2deb5f3337 project: update aquasecurity/trivy to v0.42.1 2023-06-15 12:23:59 +02:00
renovate[bot]
ca92b894cb docker: update alpine Docker tag to v3.18.2 2023-06-15 12:23:07 +02:00
e45902f5cf ci: don't fail fast to see compatibility 2023-06-08 20:16:14 +02:00
Christian Nicolai
9ae88964ec release: 3.9.0 2023-06-08 10:31:34 +02:00
Christian Nicolai
90ae7543d7 gem: drop support for Rubies < 3 2023-06-08 09:47:40 +02:00
Christian Nicolai
37413bcd3b ci: use new Trivy args 2023-06-08 09:41:53 +02:00
renovate[bot]
7af351c384 project: update aquasecurity/trivy to v0.42.0 2023-06-08 09:34:21 +02:00
depfu[bot]
68dac5c6f3 gems: update rubocop to version 1.52.0 2023-06-04 12:01:17 +02:00
renovate[bot]
c7130c7ee4 project: update aquasecurity/trivy to v0.41.0 2023-06-01 08:52:34 +02:00
renovate[bot]
3c3c1fcb24 docker: update alpine Docker tag to v3.18.0 2023-06-01 08:51:16 +02:00
depfu[bot]
425318a0d1 gems: update rubocop to version 1.51.0 2023-05-14 12:48:54 +02:00
depfu[bot]
c2eda1648b gems: update rubocop-rspec to version 2.22.0 2023-05-07 21:46:16 +02:00
depfu[bot]
d72cfeddd8 gems: update rubocop-rspec to version 2.21.0 2023-05-06 14:59:34 +02:00
renovate[bot]
6463999ab4 ci: update docker/build-push-action action to v4 2023-04-19 13:20:10 +02:00
depfu[bot]
b56922c3c8 gems: update rubocop-rspec to version 2.20.0 2023-04-19 13:17:50 +02:00
renovate[bot]
71666776b4 project: update aquasecurity/trivy to v0.39.1 2023-04-13 09:17:47 +02:00
depfu[bot]
c4e6e16afb gems: update rubocop to version 1.50.0 2023-04-12 11:55:06 +02:00
depfu[bot]
05f86550be gems: update solargraph to version 0.49.0 2023-04-11 09:39:17 +02:00
renovate[bot]
edcd7e1e47 project: update aquasecurity/trivy to v0.39.0 2023-04-06 09:55:35 +02:00
depfu[bot]
6f29034aef gems: update rubocop to version 1.49.0 2023-04-04 11:59:45 +02:00
cn
dd7553d5fd release: 3.8.2 2023-04-01 22:53:50 +02:00
renovate[bot]
a21f6a4cad docker: update alpine Docker tag to v3.17.3 2023-03-30 09:05:09 +02:00
renovate[bot]
31a7f54827 project: update aquasecurity/trivy to v0.38.3 2023-03-16 09:01:40 +01:00
renovate[bot]
d415451c8e project: update aquasecurity/trivy to v0.38.2 2023-03-09 11:36:31 +01:00
depfu[bot]
699c907a84 gems: update rubocop-rspec to version 2.19.0 2023-03-07 22:48:30 +01:00
depfu[bot]
1ad23c8716 gems: update rubocop to version 1.48.0 2023-03-07 13:59:22 +01:00
depfu[bot]
c538a6b07f gems: update async to version 1.31.0 2023-03-03 14:04:25 +01:00
depfu[bot]
fe3f17cd02 gems: update rubocop to version 1.47.0 2023-03-02 15:00:27 +01:00
Christian Nicolai
0e9b17cb0b release: 3.8.1 2023-03-02 09:23:11 +01:00
renovate[bot]
0f793f92d8 project: update aquasecurity/trivy to v0.38.0 2023-03-02 09:14:59 +01:00
depfu[bot]
0fd3833b9c gems: update rubocop to version 1.46.0 2023-02-23 22:31:52 +01:00
renovate[bot]
5bc5977704 project: update aquasecurity/trivy to v0.37.3 2023-02-16 07:19:51 +01:00
renovate[bot]
684d1f0578 docker: update alpine Docker tag to v3.17.2 2023-02-16 07:15:48 +01:00
depfu[bot]
14bac86e9d gems: update rubocop to version 1.45.1 2023-02-09 20:58:21 +01:00
renovate[bot]
12afe16a78 project: update aquasecurity/trivy to v0.37.1 2023-02-02 12:03:31 +01:00
depfu[bot]
75059044de gems: update rubocop to version 1.44.0 2023-01-24 15:20:41 +01:00
Christian Nicolai
9f7ebfe59c gems: add constraint for rackup version 2023-01-19 15:56:26 +01:00
depfu[bot]
ac42413580 gems: update rubocop-rspec to version 2.18.0 2023-01-17 14:01:54 +01:00
depfu[bot]
415bb36754 gems: update rubocop-rspec to version 2.17.0 2023-01-14 20:15:14 +01:00
cn
481504f174 release: 3.8.0 2023-01-13 00:01:53 +01:00
renovate[bot]
d68a93a94f docker: update alpine Docker tag to v3.17.1 2023-01-12 08:50:01 +01:00
renovate[bot]
69d2378747 project: update aquasecurity/trivy to v0.36.1 2023-01-12 08:49:00 +01:00
depfu[bot]
ac929f65aa gems: update rubocop to version 1.43.0 2023-01-11 13:54:20 +01:00
cn
f648c28f18 gem: support Ruby 3.2 2023-01-09 21:27:43 +01:00
renovate[bot]
2e6e69810e project: update aquasecurity/trivy to v0.36.0 2023-01-05 08:26:53 +01:00
depfu[bot]
e9398eab71 gems: update rubocop to version 1.42.0 2023-01-02 19:30:45 +01:00
cn
65f8dbb21b release: 3.7.3 2022-12-29 22:26:24 +01:00
depfu[bot]
6b6f6cf3a4 gems: update rubocop to version 1.41.0 2022-12-21 14:30:51 +01:00
depfu[bot]
9af4f03013 gems: update solargraph to version 0.48.0 2022-12-20 12:28:56 +01:00
depfu[bot]
b77c3b0996 gems: update rubocop-rspec to version 2.16.0 2022-12-14 14:35:18 +01:00
depfu[bot]
600cbeb453 gems: update rubocop to version 1.40.0 2022-12-09 22:25:23 +01:00
renovate[bot]
b2d369cc4c project: update aquasecurity/trivy to v0.35.0 2022-12-01 09:24:27 +01:00
renovate[bot]
31e73c7c4a docker: update alpine Docker tag to v3.17.0 2022-11-24 09:47:17 +01:00
depfu[bot]
52874542a7 gems: update opentelemetry-instrumentation-rack to version 0.22.0 2022-11-17 22:57:42 +01:00
renovate[bot]
1daf68376d docker: update alpine Docker tag to v3.16.3 2022-11-17 09:08:46 +01:00
depfu[bot]
b5f5fa9105 gems: update rubocop to version 1.39.0 2022-11-15 10:20:14 +01:00
Christian Nicolai
ea1d4baa04 release: 3.7.2 2022-11-10 09:25:44 +01:00
renovate[bot]
944d3fbc5d project: update hadolint/hadolint to v2.12.0 2022-11-10 09:19:01 +01:00
depfu[bot]
78721c5b15 gems: update rubocop-rspec to version 2.15.0 2022-11-04 23:39:37 +01:00
renovate[bot]
fce992b842 project: update aquasecurity/trivy to v0.34.0 2022-11-03 09:06:33 +01:00
depfu[bot]
a2a51d63ac gems: update rubocop to version 1.38.0 2022-11-02 10:58:46 +01:00
renovate[bot]
b19213d099 project: update aquasecurity/trivy to v0.33.0 2022-10-27 11:36:41 +02:00
depfu[bot]
ede79802d3 gems: update rubocop-rspec to version 2.14.1 2022-10-25 11:53:34 +02:00
depfu[bot]
d4483b02a2 gems: update rubocop to version 1.37.0 2022-10-21 12:49:15 +02:00
renovate[bot]
1fbad10a24 project: update aquasecurity/trivy to v0.32.1 2022-09-29 08:38:24 +02:00
depfu[bot]
da28c76a68 gems: update solargraph to version 0.47.0 2022-09-26 21:23:25 +02:00
renovate[bot]
e5c66824ab project: update aquasecurity/trivy to v0.32.0 2022-09-22 09:40:17 +02:00
cn
3d787a46ea release: 3.7.1 2022-09-20 19:35:55 +02:00
cn
3a5b1bcb27 gem: allow config to contain users without any hosts 2022-09-20 19:31:46 +02:00
Christian Nicolai
d066b3ecee gems: update opentelemetry 2022-09-16 07:12:10 +02:00
12 changed files with 89 additions and 28 deletions

View File

@@ -42,7 +42,7 @@ jobs:
password: ${{ secrets.DOCKER_TOKEN }} password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push Docker image for dyndnsd ${{ env.DYNDNSD_VERSION }} - name: Build and push Docker image for dyndnsd ${{ env.DYNDNSD_VERSION }}
uses: docker/build-push-action@v3 uses: docker/build-push-action@v4
with: with:
context: docker context: docker
build-args: | build-args: |

View File

@@ -15,11 +15,12 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false
matrix: matrix:
ruby-version: ruby-version:
- '2.7'
- '3.0' - '3.0'
- '3.1' - '3.1'
- '3.2'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Set up Ruby ${{ matrix.ruby-version }} - name: Set up Ruby ${{ matrix.ruby-version }}

View File

@@ -36,7 +36,7 @@ jobs:
for image in $ALL_IMAGES; do for image in $ALL_IMAGES; do
if [[ "$image" = cmur2/dyndnsd:v$major_version.* ]]; then if [[ "$image" = cmur2/dyndnsd:v$major_version.* ]]; then
echo -e "\nScanning newest patch release $image of major v$major_version...\n" echo -e "\nScanning newest patch release $image of major v$major_version...\n"
if ! trivy image --skip-update --exit-code 1 "$image"; then if ! trivy image --skip-db-update --scanners vuln --exit-code 1 "$image"; then
EXIT_CODE=1 EXIT_CODE=1
fi fi
break break

View File

@@ -3,9 +3,12 @@ require:
- rubocop-rspec - rubocop-rspec
AllCops: AllCops:
TargetRubyVersion: '2.7' TargetRubyVersion: '3.0'
NewCops: enable NewCops: enable
Gemspec/DevelopmentDependencies:
EnforcedStyle: gemspec
Gemspec/RequireMFA: Gemspec/RequireMFA:
Enabled: false Enabled: false

View File

@@ -1,5 +1,57 @@
# Changelog # Changelog
## 3.9.1 (July 6, 2023)
OTHER:
- update base of Docker image to Alpine 3.18.2 (from 3.18.0 before)
## 3.9.0 (June 8, 2023)
IMPROVEMENTS:
- Drop EOL Ruby 2.7 support, now minimum version supported is Ruby 3.0
## 3.8.2 (April 1st, 2023)
OTHER:
- update base of Docker image to Alpine 3.17.3 (from 3.17.2 before)
## 3.8.1 (March 2nd, 2023)
OTHER:
- update base of Docker image to Alpine 3.17.2 (from 3.17.1 before)
## 3.8.0 (January 13th, 2023)
IMPROVEMENTS:
- add Ruby 3.2 support
OTHER:
- update base of Docker image to Alpine 3.17.1 (from 3.17.0 before)
## 3.7.3 (December 29th, 2022)
OTHER:
- update base of Docker image to Alpine 3.17.0 (from 3.16.2 before)
## 3.7.2 (November 10th, 2022)
OTHER:
- re-release 3.7.1 to rebuild Docker image with security vulnerabilities fixes
## 3.7.1 (September 20th, 2022)
IMPROVEMENTS:
- fix [TypeError](https://github.com/cmur2/dyndnsd/issues/205) when user has no hosts configured
## 3.7.0 (September 16th, 2022) ## 3.7.0 (September 16th, 2022)
IMPROVEMENTS: IMPROVEMENTS:

View File

@@ -14,18 +14,11 @@ task :solargraph do
sh 'solargraph typecheck' sh 'solargraph typecheck'
end end
namespace :solargraph do
desc 'Should be run by developer once to prepare initial solargraph usage (fill caches etc.)'
task :init do
sh 'solargraph download-core'
end
end
# renovate: datasource=github-tags depName=hadolint/hadolint # renovate: datasource=github-tags depName=hadolint/hadolint
hadolint_version = 'v2.10.0' hadolint_version = 'v2.12.0'
# renovate: datasource=github-tags depName=aquasecurity/trivy # renovate: datasource=github-tags depName=aquasecurity/trivy
trivy_version = 'v0.31.3' trivy_version = 'v0.43.0'
namespace :docker do namespace :docker do
ci_image = 'cmur2/dyndnsd:ci' ci_image = 'cmur2/dyndnsd:ci'
@@ -78,4 +71,4 @@ end
task default: [:rubocop, :spec, 'bundle:audit', :solargraph] task default: [:rubocop, :spec, 'bundle:audit', :solargraph]
desc 'Run all tasks desired for CI' desc 'Run all tasks desired for CI'
task ci: ['solargraph:init', :default, 'docker:lint', :build, 'docker:build', 'docker:e2e'] task ci: [:default, 'docker:lint', :build, 'docker:build', 'docker:e2e']

View File

@@ -1,4 +1,4 @@
FROM alpine:3.16.2 FROM alpine:3.18.2
EXPOSE 5353 8080 EXPOSE 5353 8080

View File

@@ -1,4 +1,4 @@
FROM alpine:3.16.2 FROM alpine:3.18.2
EXPOSE 5353 8080 EXPOSE 5353 8080

View File

@@ -25,16 +25,16 @@ Gem::Specification.new do |s|
s.executables = ['dyndnsd'] s.executables = ['dyndnsd']
s.extra_rdoc_files = Dir['README.md', 'CHANGELOG.md', 'LICENSE'] s.extra_rdoc_files = Dir['README.md', 'CHANGELOG.md', 'LICENSE']
s.required_ruby_version = '>= 2.7' s.required_ruby_version = '>= 3.0'
s.add_runtime_dependency 'async', '~> 1.30.0' s.add_runtime_dependency 'async', '~> 1.31.0'
s.add_runtime_dependency 'async-dns', '~> 1.3.0' s.add_runtime_dependency 'async-dns', '~> 1.3.0'
s.add_runtime_dependency 'metriks' s.add_runtime_dependency 'metriks'
s.add_runtime_dependency 'opentelemetry-exporter-jaeger', '~> 0.21.0' s.add_runtime_dependency 'opentelemetry-exporter-jaeger', '~> 0.22.0'
s.add_runtime_dependency 'opentelemetry-instrumentation-rack', '~> 0.20.0' s.add_runtime_dependency 'opentelemetry-instrumentation-rack', '~> 0.22.0'
s.add_runtime_dependency 'opentelemetry-sdk', '~> 1.0.0.rc2' s.add_runtime_dependency 'opentelemetry-sdk', '~> 1.2.0'
s.add_runtime_dependency 'rack', '~> 3.0' s.add_runtime_dependency 'rack', '~> 3.0'
s.add_runtime_dependency 'rackup' s.add_runtime_dependency 'rackup', '~> 2'
s.add_runtime_dependency 'webrick', '>= 1.6.1' s.add_runtime_dependency 'webrick', '>= 1.6.1'
s.add_development_dependency 'bundler' s.add_development_dependency 'bundler'
@@ -42,8 +42,8 @@ Gem::Specification.new do |s|
s.add_development_dependency 'rack-test' s.add_development_dependency 'rack-test'
s.add_development_dependency 'rake' s.add_development_dependency 'rake'
s.add_development_dependency 'rspec' s.add_development_dependency 'rspec'
s.add_development_dependency 'rubocop', '~> 1.36.0' s.add_development_dependency 'rubocop', '~> 1.54.0'
s.add_development_dependency 'rubocop-rake', '~> 0.6.0' s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
s.add_development_dependency 'rubocop-rspec', '~> 2.13.1' s.add_development_dependency 'rubocop-rspec', '~> 2.22.0'
s.add_development_dependency 'solargraph', '~> 0.46.0' s.add_development_dependency 'solargraph', '~> 0.49.0'
end end

View File

@@ -107,7 +107,7 @@ module Dyndnsd
puts "DynDNSd version #{Dyndnsd::VERSION}" puts "DynDNSd version #{Dyndnsd::VERSION}"
puts "Using config file #{config_file}" puts "Using config file #{config_file}"
config = YAML.safe_load(File.read(config_file)) config = YAML.safe_load_file(config_file)
setup_logger(config) setup_logger(config)
@@ -215,10 +215,11 @@ module Dyndnsd
invalid_hostnames = hostnames.select { |h| !Helper.fqdn_valid?(h, @domain) } invalid_hostnames = hostnames.select { |h| !Helper.fqdn_valid?(h, @domain) }
return [422, {'X-DynDNS-Response' => 'hostname_malformed'}, []] if invalid_hostnames.any? return [422, {'X-DynDNS-Response' => 'hostname_malformed'}, []] if invalid_hostnames.any?
# we can trust this information since user was authorized by middleware
user = env['REMOTE_USER'] user = env['REMOTE_USER']
# check for hostnames that the user does not own # check for hostnames that the user does not own
forbidden_hostnames = hostnames - @users[user]['hosts'] forbidden_hostnames = hostnames - @users[user].fetch('hosts', [])
return [422, {'X-DynDNS-Response' => 'host_forbidden'}, []] if forbidden_hostnames.any? return [422, {'X-DynDNS-Response' => 'host_forbidden'}, []] if forbidden_hostnames.any?
if params['offline'] == 'YES' if params['offline'] == 'YES'

View File

@@ -1,5 +1,5 @@
# frozen_string_literal: true # frozen_string_literal: true
module Dyndnsd module Dyndnsd
VERSION = '3.7.0' VERSION = '3.9.1'
end end

View File

@@ -15,6 +15,9 @@ describe Dyndnsd::Daemon do
'test' => { 'test' => {
'password' => 'secret', 'password' => 'secret',
'hosts' => ['foo.example.org', 'bar.example.org'] 'hosts' => ['foo.example.org', 'bar.example.org']
},
'test2' => {
'password' => 'ihavenohosts'
} }
} }
} }
@@ -99,6 +102,14 @@ describe Dyndnsd::Daemon do
expect(last_response.body).to eq('notfqdn') expect(last_response.body).to eq('notfqdn')
end end
it 'rejects request if user does not own any hostnames' do
authorize 'test2', 'ihavenohosts'
get '/nic/update?hostname=doesnotexisthost.example.org'
expect(last_response).to be_ok
expect(last_response.body).to eq('nohost')
end
it 'rejects request if user does not own one hostname' do it 'rejects request if user does not own one hostname' do
authorize 'test', 'secret' authorize 'test', 'secret'