mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 03:27:52 +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
|