diff --git a/docker/zammad/setup.rb b/docker/zammad/setup.rb index 7da5cc2..14bb5a6 100644 --- a/docker/zammad/setup.rb +++ b/docker/zammad/setup.rb @@ -2,7 +2,7 @@ # uninstall # Include both Bridge (legacy) and Link (new) for migration support -package_names = %w[Hardening Bridge Link MediaVerify] +package_names = %w[Hardening Bridge Link Proofmode] package_names.each do |name| puts "Attempting to uninstall #{name} package..." diff --git a/packages/zammad-addon-media-verify/src/config/initializers/cdr_media_verify.rb b/packages/zammad-addon-media-verify/src/config/initializers/cdr_media_verify.rb deleted file mode 100644 index 86a16b6..0000000 --- a/packages/zammad-addon-media-verify/src/config/initializers/cdr_media_verify.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -Rails.application.config.after_initialize do - require 'cdr_media_verify' - - Rails.logger.info 'CDR MediaVerify addon loaded' -end diff --git a/packages/zammad-addon-media-verify/package.json b/packages/zammad-addon-proofmode/package.json similarity index 85% rename from packages/zammad-addon-media-verify/package.json rename to packages/zammad-addon-proofmode/package.json index 537a15f..d7a4ba7 100644 --- a/packages/zammad-addon-media-verify/package.json +++ b/packages/zammad-addon-proofmode/package.json @@ -1,6 +1,6 @@ { - "name": "@link-stack/zammad-addon-media-verify", - "displayName": "MediaVerify", + "name": "@link-stack/zammad-addon-proofmode", + "displayName": "Proofmode", "version": "3.5.0-beta.1", "description": "Zammad addon that verifies media attachments for C2PA and ProofMode data using the proofmode-rust library.", "scripts": { diff --git a/packages/zammad-addon-media-verify/scripts/build.ts b/packages/zammad-addon-proofmode/scripts/build.ts similarity index 100% rename from packages/zammad-addon-media-verify/scripts/build.ts rename to packages/zammad-addon-proofmode/scripts/build.ts diff --git a/packages/zammad-addon-media-verify/scripts/migrate.ts b/packages/zammad-addon-proofmode/scripts/migrate.ts similarity index 100% rename from packages/zammad-addon-media-verify/scripts/migrate.ts rename to packages/zammad-addon-proofmode/scripts/migrate.ts diff --git a/packages/zammad-addon-media-verify/src/.ruby-version b/packages/zammad-addon-proofmode/src/.ruby-version similarity index 100% rename from packages/zammad-addon-media-verify/src/.ruby-version rename to packages/zammad-addon-proofmode/src/.ruby-version diff --git a/packages/zammad-addon-media-verify/src/Gemfile b/packages/zammad-addon-proofmode/src/Gemfile similarity index 76% rename from packages/zammad-addon-media-verify/src/Gemfile rename to packages/zammad-addon-proofmode/src/Gemfile index dce1ca7..6f363cc 100644 --- a/packages/zammad-addon-media-verify/src/Gemfile +++ b/packages/zammad-addon-proofmode/src/Gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# This Gemfile documents Ruby dependencies for the media-verify addon. +# This Gemfile documents Ruby dependencies for the proofmode addon. # It is NOT included in the .zpm package (excluded by build script). # The proofmode gem must be installed at the Docker image level. diff --git a/packages/zammad-addon-media-verify/src/app/jobs/cdr_media_verify_job.rb b/packages/zammad-addon-proofmode/src/app/jobs/proofmode_verify_job.rb similarity index 64% rename from packages/zammad-addon-media-verify/src/app/jobs/cdr_media_verify_job.rb rename to packages/zammad-addon-proofmode/src/app/jobs/proofmode_verify_job.rb index e928e3a..055c411 100644 --- a/packages/zammad-addon-media-verify/src/app/jobs/cdr_media_verify_job.rb +++ b/packages/zammad-addon-proofmode/src/app/jobs/proofmode_verify_job.rb @@ -1,15 +1,15 @@ # frozen_string_literal: true -class CdrMediaVerifyJob < ApplicationJob +class ProofmodeVerifyJob < ApplicationJob BATCH_SIZE = 20 def perform - return unless Setting.get('media_verify_enabled') + return unless Setting.get('proofmode_verify_enabled') articles_to_check.each do |article| verify_article(article) rescue StandardError => e - Rails.logger.error "MediaVerify: Failed to check article #{article.id}: #{e.message}" + Rails.logger.error "ProofmodeVerify: Failed to check article #{article.id}: #{e.message}" Rails.logger.error e.backtrace&.first(5)&.join("\n") mark_checked(article, error: e.message) end @@ -25,7 +25,7 @@ class CdrMediaVerifyJob < ApplicationJob # Find articles with attachments that haven't been checked yet. # We look for articles that: # 1. Have at least one Store (attachment) record - # 2. Haven't been marked as media_verify_checked in preferences + # 2. Haven't been marked as proofmode_checked in preferences # 3. Are from customers (incoming media) - agent articles are unlikely to need verification article_ids_with_attachments = Store .where(store_object_id: store_object_id) @@ -38,7 +38,7 @@ class CdrMediaVerifyJob < ApplicationJob Ticket::Article .where(id: article_ids_with_attachments) .where(sender: Ticket::Article::Sender.find_by(name: 'Customer')) - .where.not("preferences->>'media_verify_checked' = ?", 'true') + .where.not("preferences->>'proofmode_checked' = ?", 'true') .order(created_at: :desc) .limit(BATCH_SIZE) end @@ -48,21 +48,21 @@ class CdrMediaVerifyJob < ApplicationJob end def verify_article(article) - Rails.logger.info "MediaVerify: Checking article #{article.id} on ticket #{article.ticket_id}" + Rails.logger.info "ProofmodeVerify: Checking article #{article.id} on ticket #{article.ticket_id}" - check_output = CdrMediaVerify.check_article(article) + check_output = ProofmodeVerify.check_article(article) if check_output.nil? - Rails.logger.debug { "MediaVerify: No verifiable attachments in article #{article.id}" } + Rails.logger.debug { "ProofmodeVerify: No verifiable attachments in article #{article.id}" } mark_checked(article) return end - body = CdrMediaVerify.format_result(check_output) + body = ProofmodeVerify.format_result(check_output) create_verification_article(article.ticket, article, body) mark_checked(article) - Rails.logger.info "MediaVerify: Posted verification report for article #{article.id}" + Rails.logger.info "ProofmodeVerify: Posted verification report for article #{article.id}" end def create_verification_article(ticket, source_article, body) @@ -75,8 +75,8 @@ class CdrMediaVerifyJob < ApplicationJob sender: Ticket::Article::Sender.find_by(name: 'System'), type: Ticket::Article::Type.find_by(name: 'note'), preferences: { - media_verify_report: true, - media_verify_source_article_id: source_article.id, + proofmode_report: true, + proofmode_source_article_id: source_article.id, }, updated_by_id: 1, created_by_id: 1, @@ -84,9 +84,9 @@ class CdrMediaVerifyJob < ApplicationJob end def mark_checked(article, error: nil) - article.preferences['media_verify_checked'] = 'true' - article.preferences['media_verify_checked_at'] = Time.current.iso8601 - article.preferences['media_verify_error'] = error if error + article.preferences['proofmode_checked'] = 'true' + article.preferences['proofmode_checked_at'] = Time.current.iso8601 + article.preferences['proofmode_error'] = error if error article.save! end end diff --git a/packages/zammad-addon-proofmode/src/config/initializers/proofmode_verify.rb b/packages/zammad-addon-proofmode/src/config/initializers/proofmode_verify.rb new file mode 100644 index 0000000..ba86c5d --- /dev/null +++ b/packages/zammad-addon-proofmode/src/config/initializers/proofmode_verify.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +Rails.application.config.after_initialize do + require 'proofmode_verify' + + Rails.logger.info 'Proofmode verification addon loaded' +end diff --git a/packages/zammad-addon-media-verify/src/db/addon/media_verify/20260215000001_add_media_verify.rb b/packages/zammad-addon-proofmode/src/db/addon/proofmode/20260215000001_add_proofmode_verify.rb similarity index 74% rename from packages/zammad-addon-media-verify/src/db/addon/media_verify/20260215000001_add_media_verify.rb rename to packages/zammad-addon-proofmode/src/db/addon/proofmode/20260215000001_add_proofmode_verify.rb index 8932898..2d5c615 100644 --- a/packages/zammad-addon-media-verify/src/db/addon/media_verify/20260215000001_add_media_verify.rb +++ b/packages/zammad-addon-proofmode/src/db/addon/proofmode/20260215000001_add_proofmode_verify.rb @@ -1,19 +1,19 @@ # frozen_string_literal: true -class MediaVerifyAddMediaVerify < ActiveRecord::Migration[5.2] +class ProofmodeAddProofmodeVerify < ActiveRecord::Migration[5.2] def self.up # Setting to enable/disable media verification Setting.create_if_not_exists( - title: 'Media Verification', - name: 'media_verify_enabled', - area: 'Integration::MediaVerify', + title: 'Proofmode Verification', + name: 'proofmode_verify_enabled', + area: 'Integration::Proofmode', description: 'Enable automatic verification of media attachments for C2PA and ProofMode data.', options: { form: [ { display: '', null: true, - name: 'media_verify_enabled', + name: 'proofmode_verify_enabled', tag: 'boolean', options: { true => 'yes', @@ -33,7 +33,7 @@ class MediaVerifyAddMediaVerify < ActiveRecord::Migration[5.2] # Scheduler to run media verification checks Scheduler.create_if_not_exists( name: 'Verify media attachments for C2PA and ProofMode data', - method: 'CdrMediaVerifyJob.perform_now', + method: 'ProofmodeVerifyJob.perform_now', period: 5.minutes, prio: 3, active: true, @@ -44,6 +44,6 @@ class MediaVerifyAddMediaVerify < ActiveRecord::Migration[5.2] def self.down Scheduler.find_by(name: 'Verify media attachments for C2PA and ProofMode data')&.destroy - Setting.find_by(name: 'media_verify_enabled')&.destroy + Setting.find_by(name: 'proofmode_verify_enabled')&.destroy end end diff --git a/packages/zammad-addon-media-verify/src/lib/cdr_media_verify.rb b/packages/zammad-addon-proofmode/src/lib/proofmode_verify.rb similarity index 99% rename from packages/zammad-addon-media-verify/src/lib/cdr_media_verify.rb rename to packages/zammad-addon-proofmode/src/lib/proofmode_verify.rb index 4e63ecb..d7ede96 100644 --- a/packages/zammad-addon-media-verify/src/lib/cdr_media_verify.rb +++ b/packages/zammad-addon-proofmode/src/lib/proofmode_verify.rb @@ -4,7 +4,7 @@ require 'proofmode' require 'json' require 'tempfile' -class CdrMediaVerify +class ProofmodeVerify VERIFIABLE_CONTENT_TYPES = %w[ image/jpeg image/png diff --git a/packages/zammad-addon-media-verify/tsconfig.json b/packages/zammad-addon-proofmode/tsconfig.json similarity index 100% rename from packages/zammad-addon-media-verify/tsconfig.json rename to packages/zammad-addon-proofmode/tsconfig.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 23f9a90..7e3fb70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -235,7 +235,7 @@ importers: specifier: ^5 version: 5.9.3 - packages/zammad-addon-media-verify: + packages/zammad-addon-proofmode: dependencies: '@link-stack/zammad-addon-common': specifier: workspace:*