mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	* chore: update to ruby 3.1.3
* chore: ping docker version to alpine3.16 for nodev16.x
Starting with Node 17, nodejs switched to OpenSSL3. The docker builds
are installing node18.xx with alpine-3.1.3.
From Node.js 17's announcement post:
    If you hit an ERR_OSSL_EVP_UNSUPPORTED error in your application
with Node.js 17, it’s likely that your application or a module you’re
using is attempting to use an algorithm or key size which is no longer
allowed by default with OpenSSL 3.0. A new command-line option,
--openssl-legacy-provider, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
Looks like a webpack issue. This is fixed in webpacl 5+ and we are on
webpack4 at the moment.
Solutions
    Upgrade webpack.
    Pin nodejs version to be 16.x.x
    Use  --openssl-legacy-provider as a workaround.
Pin docker version to alpine3.16 branch to have node16.x by default
ref:
https://github.com/chatwoot/chatwoot/pull/5555#issuecomment-1379778532
* chore: update webmock
* chore: fix ruby gem path in dockerfile
* chore: switch to node16 in circleci
* chore: update ruby version in linux installer script
* chore: update ruby version in linux installer script
* chore: fix circleci
* chore: fix circleci
* feat: upgrade node version to 16.x in linux installer
* chore: update systemd files
Co-authored-by: Sojan Jose <sojan@chatwoot.com>
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# == Schema Information
 | 
						|
#
 | 
						|
# Table name: dashboard_apps
 | 
						|
#
 | 
						|
#  id         :bigint           not null, primary key
 | 
						|
#  content    :jsonb
 | 
						|
#  title      :string           not null
 | 
						|
#  created_at :datetime         not null
 | 
						|
#  updated_at :datetime         not null
 | 
						|
#  account_id :bigint           not null
 | 
						|
#  user_id    :bigint
 | 
						|
#
 | 
						|
# Indexes
 | 
						|
#
 | 
						|
#  index_dashboard_apps_on_account_id  (account_id)
 | 
						|
#  index_dashboard_apps_on_user_id     (user_id)
 | 
						|
#
 | 
						|
class DashboardApp < ApplicationRecord
 | 
						|
  belongs_to :user
 | 
						|
  belongs_to :account
 | 
						|
  validate :validate_content
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def validate_content
 | 
						|
    has_invalid_data = self[:content].blank? || !self[:content].is_a?(Array)
 | 
						|
    self[:content] = [] if has_invalid_data
 | 
						|
 | 
						|
    content_schema = {
 | 
						|
      'type' => 'array',
 | 
						|
      'items' => {
 | 
						|
        'type' => 'object',
 | 
						|
        'required' => %w[url type],
 | 
						|
        'properties' => {
 | 
						|
          'type' => { 'enum': ['frame'] },
 | 
						|
          'url' => { :type => 'string', 'format' => 'uri' }
 | 
						|
        }
 | 
						|
      },
 | 
						|
      'additionalProperties' => false,
 | 
						|
      'minItems' => 1
 | 
						|
    }
 | 
						|
    errors.add(:content, ': Invalid data') unless JSONSchemer.schema(content_schema.to_json).valid?(self[:content])
 | 
						|
  end
 | 
						|
end
 |