Proposal: Consistent quote props

Digging more and more in ESLint rules, i found some good ones which enforces good style and more readable code. This issue is for quote-props rule - fixable.
Suggested configuration.
{
  "quote-props": ["error", "consistent-as-needed", { "keywords": true }]
}

Invalid
// NOT OK, should not have quotes
// autofix: quotes will be removed
var x = {
  'prop': 1,
  'bar': 'foo'
}

// NOT OK, should be consistent
// autofix: quotes will be removed
var x = {
  'prop': 1,
  bar: 'foo'
}

// NOT OK, should be consistent
// autofix: will set quotes for `prop`
var x = {
  prop: 1,
  'foo-bar': 'foo'
}

// NOT OK, all props should have quotes
// because `while` is keyword
var x = {
  while: 1,
  volatile: 'foo'
}

Valid

var x = {
  prop: 1,
  bar: 'foo'
}

var x = {
  prop: 1,
  bar: 'foo'
}

var x = {
  'prop': 1,
  'foo-bar': 'foo'
}

var x = {
  'while': 1,
  'volatile': 'foo'
}

NACK.  as-needed is the only approach I typically take.
var x = {
  'while': 2,
  prop: 1,
  'foo-bar': 'foo'
}

Me too, but it is messy for the eyes and we have autofix feature, so absolutely no problem.

@tunnckoCore not true.
If I have an object with 100 properties that has no quotes,  then suddenly introduce foo-bar,  I'm not going to then re-quote those properties.
Even with --fix.
What a mess that would be for any diff too.

Kinda didn't thout for that case. But in any way

If I have an object with 100 properties that has no quotes

is some exotic case

is some exotic case

If we're using objects this much,  even an object of 3-5 properties would feel like 100 properties.
It's a pain.
NACK.

The intention of this rule is good, however I agree with @dcousens. Requoting unrelated keys due to adding a single property that needs quoting is not great.

it is messy for the eyes and we have autofix feature, so absolutely no problem.

I think we should avoid any rules while lean heavily on --fix for day-to-day use, an typical standard user shouldn't need know anything about standard outside of the warnings it produces. IMO we should only rely on  --fix as an escape-hatch for upgrades to standard.

I believe everyone should by default call standard with --fix flag. It just not make sense to see such errors while they can be fixed. Autofix implementations aren't dangerous, or i still didn't see such.
I even would suggest fix to be enabled by default. And standard officially to recommend using it at least.

:+1: on catching reserved keywords, maybe. A big :-1: on forcing too much coding style (even if fixable). Standard provides coding bliss because it steps out of the way and allows Zen coding w/o interruption. Add too much opinion and you lose that zen. Related reading: http://ben.balter.com/2016/07/21/removing-a-feature-is-a-feature/

@tunnckoCore I added a recommendation to use --fix at the very top of the readme. Thanks for the suggestion! See here: https://github.com/feross/standard#javascript-style-guide-with-linter--automatic-code-fixer

@timoxley I think we should avoid any rules while lean heavily on --fix for day-to-day use, a typical standard user shouldn't need know anything about standard outside of the warnings it produces

This is correct. As cool as --fix is, it's really important to me that I can write code that passes standard easily (from memory and without relying on --fix because something is too painful to do manually).

The ecosystem impact of this is 8%.
# tests 238
# pass  220
# fail  18

However, this is mitigated by the fact that the rule is fixable. Most of the failing cases are places where folks were consistently using quoted props, even though they're not needed. Like this:
var yargKeys = {
  'boolean': { transform: null, error: null },
  'count': { transform: null, error: null },
  'string': { transform: null, error: null },
  'array': { transform: null, error: null },
  'required': { transform: null, error: null },
  'default:': { transform: null, error: null },
  'choices:': { transform: null, error: null },
}

We could try enabling this in a future beta version, so I'll leave this open for now.

One additional note: Prettier is considering "Consistently add quotes to object keys" for v2.0. I would assume this change is due to overwhelming community feedback (although my assumption is probably based on my bias):
With the following comment coming from @vjeux who appears to want to adjust this rule regardless of a v2.0 release:

For consistent key quotes, I think we should just do it regardless, I’m not sure why we haven’t already.

https://github.com/prettier/prettier/issues/3503

as-needed is my personal preference.

I think we should go ahead with the following rule in standard 13.
"quote-props": ["error", "as-needed"]

Ecosystem breakage is only 4%. --fix can be used to automatically fix the issue. Furthermore, the rule is easy to remember: add quotes only where you are required to.


Getting 404 on getting Twitch OAuth

Hey!
I know that it's not the issue with the script but I would appreciate if you could help me with that 🙂

Registering an app in twitch developer console
Adding https://twitchapps.com/tokengen/
Copying client id
Going to https://twitchapps.com/tokengen/
Inserting client id
Authorizing and redirecting to 404

What do I do wrong? Is there any other way to obtain OAth token?

That's what I'm receiving in the uri, which is very weird
error=redirect_mismatch&error_description=Parameter+redirect_uri+does+not+match+registered+URI

ok, copied from the tokengen itself and it worked. Sorry for bothering


5.2.6_disable_x11_forward [INFO] [DESCRIPTION] Disable SSH X11 forwarding.
5.2.6_disable_x11_forward [INFO] Checking Configuration
5.2.6_disable_x11_forward [INFO] Performing audit
5.2.6_disable_x11_forward [ OK ] openssh-server is installed
5.2.6_disable_x11_forward [ OK ] ^X11Forwarding[[:space:]]*no is present in /etc/ssh/sshd_config
5.2.6_disable_x11_forward [ OK ] Check Passed
5.2.7_sshd_maxauthtries   [INFO] Working on 5.2.7_sshd_maxauthtries
5.2.7_sshd_maxauthtries   [INFO] [DESCRIPTION] Set SSH MaxAuthTries to 4.
5.2.7_sshd_maxauthtries   [INFO] Checking Configuration
5.2.7_sshd_maxauthtries   [INFO] Performing audit
5.2.7_sshd_maxauthtries   [ OK ] openssh-server is installed
5.2.7_sshd_maxauthtries   [ OK ] ^MaxAuthTries[[:space:]]*4 is present in /etc/ssh/sshd_config
5.2.7_sshd_maxauthtries   [ OK ] Check Passed
5.2.8_enable_sshd_ignorer [INFO] Working on 5.2.8_enable_sshd_ignorerhosts
5.2.8_enable_sshd_ignorer [INFO] [DESCRIPTION] Set SSH IgnoreRhosts to Yes.
5.2.8_enable_sshd_ignorer [INFO] Checking Configuration
5.2.8_enable_sshd_ignorer [INFO] Performing audit
5.2.8_enable_sshd_ignorer [ OK ] openssh-server is installed
5.2.8_enable_sshd_ignorer [ OK ] ^IgnoreRhosts[[:space:]]*yes is present in /etc/ssh/sshd_config
5.2.8_enable_sshd_ignorer [ OK ] Check Passed
5.2.9_disable_sshd_hostba [INFO] Working on 5.2.9_disable_sshd_hostbasedauthentication
5.2.9_disable_sshd_hostba [INFO] [DESCRIPTION] Set SSH HostbasedAUthentication to No.
5.2.9_disable_sshd_hostba [INFO] Checking Configuration
5.2.9_disable_sshd_hostba [INFO] Performing audit
5.2.9_disable_sshd_hostba [ OK ] openssh-server is installed
5.2.9_disable_sshd_hostba [ OK ] ^HostbasedAuthentication[[:space:]]*no is present in /etc/ssh/sshd_config
5.2.9_disable_sshd_hostba [ OK ] Check Passed
5.3.1_enable_pwquality    [INFO] Working on 5.3.1_enable_pwquality
5.3.1_enable_pwquality    [INFO] [DESCRIPTION] Set password creation requirement parameters using pam.cracklib.
5.3.1_enable_pwquality    [INFO] Checking Configuration
5.3.1_enable_pwquality    [INFO] Performing audit
5.3.1_enable_pwquality    [ OK ] libpam-pwquality is installed
5.3.1_enable_pwquality    [ OK ] pam_pwquality.so is present in /etc/pam.d/common-password
5.3.1_enable_pwquality    [ OK ] ^minlen[[:space:]]+=[[:space:]]+14 is present in /etc/security/pwquality.conf
5.3.1_enable_pwquality    [ OK ] ^dcredit[[:space:]]+=[[:space:]]+-1 is present in /etc/security/pwquality.conf
5.3.1_enable_pwquality    [ OK ] ^ucredit[[:space:]]+=[[:space:]]+-1 is present in /etc/security/pwquality.conf
5.3.1_enable_pwquality    [ OK ] ^ocredit[[:space:]]+=[[:space:]]+-1 is present in /etc/security/pwquality.conf
5.3.1_enable_pwquality    [ OK ] ^lcredit[[:space:]]+=[[:space:]]+-1 is present in /etc/security/pwquality.conf
5.3.1_enable_pwquality    [ OK ] Check Passed
5.3.2_enable_lockout_fail [INFO] Working on 5.3.2_enable_lockout_failed_password
5.3.2_enable_lockout_fail [INFO] [DESCRIPTION] Set lockout for failed password attemps.
5.3.2_enable_lockout_fail [INFO] Checking Configuration
5.3.2_enable_lockout_fail [INFO] Performing audit
5.3.2_enable_lockout_fail [ OK ] libpam-modules-bin is installed
5.3.2_enable_lockout_fail [ OK ] ^auth[[:space:]]*required[[:space:]]*pam_((tally[2]?)|(faillock))\.so is present in /etc/pam.d/common-auth
5.3.2_enable_lockout_fail [ OK ] pam_((tally[2]?)|(faillock))\.so is present in /etc/pam.d/common-account
5.3.2_enable_lockout_fail [ OK ] Check Passed
5.3.3_limit_password_reus [INFO] Working on 5.3.3_limit_password_reuse
5.3.3_limit_password_reus [INFO] [DESCRIPTION] Limit password reuse.
5.3.3_limit_password_reus [INFO] Checking Configuration
5.3.3_limit_password_reus [INFO] Performing audit
5.3.3_limit_password_reus [ OK ] libpam-modules is installed
5.3.3_limit_password_reus [ OK ] ^password.*remember is present in /etc/pam.d/common-password
5.3.3_limit_password_reus [ OK ] Check Passed
5.3.4_acc_pam_sha512      [INFO] Working on 5.3.4_acc_pam_sha512
5.3.4_acc_pam_sha512      [INFO] [DESCRIPTION] Check that any password that may exist in /etc/shadow is SHA512 hashed and salted
5.3.4_acc_pam_sha512      [INFO] 5.3.4_acc_pam_sha512 is disabled, ignoring
5.3.4_acc_pam_yescrypt    [INFO] Working on 5.3.4_acc_pam_yescrypt
5.3.4_acc_pam_yescrypt    [INFO] [DESCRIPTION] Check that any password that may exist in /etc/shadow is SHA512 (yescrypt) hashed and salted
5.3.4_acc_pam_yescrypt    [INFO] Checking Configuration
5.3.4_acc_pam_yescrypt    [INFO] Performing audit
5.3.4_acc_pam_yescrypt    [ OK ] ^\s*password\s.+\s+pam_unix\.so\s+.*yescrypt is present in /etc/pam.d/common-password
5.3.4_acc_pam_yescrypt    [ OK ] Check Passed
<IP_ADDRESS>_set_password_exp_ [INFO] Working on <IP_ADDRESS>_set_password_exp_days
<IP_ADDRESS>_set_password_exp_ [INFO] [DESCRIPTION] Set password expiration days.
<IP_ADDRESS>_set_password_exp_ [INFO] Checking Configuration
<IP_ADDRESS>_set_password_exp_ [INFO] Performing audit
<IP_ADDRESS>_set_password_exp_ [ OK ] login is installed
<IP_ADDRESS>_set_password_exp_ [ OK ] ^PASS_MAX_DAYS[[:space:]]*90 is present in /etc/login.defs
<IP_ADDRESS>_set_password_exp_ [ OK ] Check Passed
<IP_ADDRESS>_set_password_min_ [INFO] Working on <IP_ADDRESS>_set_password_min_days_change
<IP_ADDRESS>_set_password_min_ [INFO] [DESCRIPTION] Set password change minimum number of days.
<IP_ADDRESS>_set_password_min_ [INFO] Checking Configuration
<IP_ADDRESS>_set_password_min_ [INFO] Performing audit
<IP_ADDRESS>_set_password_min_ [ OK ] login is installed
<IP_ADDRESS>_set_password_min_ [ OK ] ^PASS_MIN_DAYS[[:space:]]*7 is present in /etc/login.defs
<IP_ADDRESS>_set_password_min_ [ OK ] Check Passed
<IP_ADDRESS>_set_password_exp_ [INFO] Working on <IP_ADDRESS>_set_password_exp_warning_days
<IP_ADDRESS>_set_password_exp_ [INFO] [DESCRIPTION] Set password expiration warning days.
<IP_ADDRESS>_set_password_exp_ [INFO] Checking Configuration
<IP_ADDRESS>_set_password_exp_ [INFO] Performing audit
<IP_ADDRESS>_set_password_exp_ [ OK ] login is installed
<IP_ADDRESS>_set_password_exp_ [ OK ] ^PASS_WARN_AGE[[:space:]]*7 is present in /etc/login.defs
<IP_ADDRESS>_set_password_exp_ [ OK ] Check Passed
<IP_ADDRESS>_lock_inactive_use [INFO] Working on <IP_ADDRESS>_lock_inactive_user_account
<IP_ADDRESS>_lock_inactive_use [INFO] [DESCRIPTION] Lock inactive user accounts.
<IP_ADDRESS>_lock_inactive_use [INFO] Checking Configuration
<IP_ADDRESS>_lock_inactive_use [INFO] Performing audit
<IP_ADDRESS>_lock_inactive_use [INFO] Looking at the manual of useradd, it seems that this recommendation does not fill the title
<IP_ADDRESS>_lock_inactive_use [INFO] The number of days after a password expires until the account is permanently disabled.
<IP_ADDRESS>_lock_inactive_use [INFO] Which is not inactive users per se
<IP_ADDRESS>_lock_inactive_use [ OK ] Check Passed
<IP_ADDRESS>_last_password_cha [INFO] Working on <IP_ADDRESS>_last_password_change_past
<IP_ADDRESS>_last_password_cha [INFO] [DESCRIPTION] Check that user last paswword change date is in the past.
<IP_ADDRESS>_last_password_cha [INFO] Checking Configuration
<IP_ADDRESS>_last_password_cha [INFO] Performing audit
<IP_ADDRESS>_last_password_cha [ OK ] Check Passed
5.4.2_disable_system_acco [INFO] Working on 5.4.2_disable_system_accounts
5.4.2_disable_system_acco [INFO] [DESCRIPTION] Disable system accounts, preventing them from interactive login.
5.4.2_disable_system_acco [INFO] Checking Configuration
5.4.2_disable_system_acco [INFO] Performing audit
5.4.2_disable_system_acco [INFO] Checking if admin accounts have a login shell different than /bin/false /usr/sbin/nologin /sbin/nologin
5.4.2_disable_system_acco [ OK ] All admin accounts deactivated
5.4.2_disable_system_acco [ OK ] Check Passed
5.4.3_default_root_group  [INFO] Working on 5.4.3_default_root_group
5.4.3_default_root_group  [INFO] [DESCRIPTION] Set default group for root account to 0.
5.4.3_default_root_group  [INFO] Checking Configuration
5.4.3_default_root_group  [INFO] Performing audit
5.4.3_default_root_group  [ OK ] Root group has GID 0
5.4.3_default_root_group  [ OK ] Check Passed
5.4.4_default_umask       [INFO] Working on 5.4.4_default_umask
5.4.4_default_umask       [INFO] [DESCRIPTION] Set default mask for users to 077.
5.4.4_default_umask       [INFO] Checking Configuration
5.4.4_default_umask       [INFO] Performing audit
5.4.4_default_umask       [ OK ] umask 077 is present in /etc/bash.bashrc /etc/profile.d /etc/profile
5.4.4_default_umask       [ OK ] Check Passed
5.4.5_default_timeout     [INFO] Working on 5.4.5_default_timeout
5.4.5_default_timeout     [INFO] [DESCRIPTION] Timeout 600 seconds on tty.
5.4.5_default_timeout     [INFO] Checking Configuration
5.4.5_default_timeout     [INFO] Performing audit
5.4.5_default_timeout     [ OK ] TMOUT= is present in /etc/profile.d//etc/profile.d/50-autologout.sh
5.4.5_default_timeout     [ OK ] Check Passed
5.5_secure_tty            [INFO] Working on 5.5_secure_tty
5.5_secure_tty            [INFO] [DESCRIPTION] Restrict root login to system console.
5.5_secure_tty            [INFO] Checking Configuration
5.5_secure_tty            [INFO] Performing audit
5.5_secure_tty            [INFO] Remove terminal entries in /etc/securetty for any consoles that are not in a physically secure location.
5.5_secure_tty            [INFO] No measure here, please review the file by yourself
5.5_secure_tty            [ OK ] Check Passed
5.6_restrict_su           [INFO] Working on 5.6_restrict_su
5.6_restrict_su           [INFO] [DESCRIPTION] Restrict access to su command.
5.6_restrict_su           [INFO] Checking Configuration
5.6_restrict_su           [INFO] Performing audit
5.6_restrict_su           [ OK ] login is installed
5.6_restrict_su           [ OK ] ^auth[[:space:]]*required[[:space:]]*pam_wheel.so is present in /etc/pam.d/su
5.6_restrict_su           [ OK ] Check Passed
6.1.10_find_world_writabl [INFO] Working on 6.1.10_find_world_writable_file
6.1.10_find_world_writabl [INFO] [DESCRIPTION] Ensure no world writable files exist
6.1.10_find_world_writabl [INFO] Checking Configuration
6.1.10_find_world_writabl [INFO] Performing audit
6.1.10_find_world_writabl [INFO] Checking if there are world writable files
6.1.10_find_world_writabl [ OK ] No world writable files found
6.1.10_find_world_writabl [ OK ] Check Passed
6.1.11_find_unowned_files [INFO] Working on 6.1.11_find_unowned_files
6.1.11_find_unowned_files [INFO] [DESCRIPTION] Ensure no unowned files or directories exist.
6.1.11_find_unowned_files [INFO] Checking Configuration
6.1.11_find_unowned_files [INFO] Performing audit
6.1.11_find_unowned_files [INFO] Checking if there are unowned files
6.1.11_find_unowned_files [ OK ] No unowned files found
6.1.11_find_unowned_files [ OK ] Check Passed
6.1.12_find_ungrouped_fil [INFO] Working on 6.1.12_find_ungrouped_files
6.1.12_find_ungrouped_fil [INFO] [DESCRIPTION] Ensure no ungrouped files or directories exist
6.1.12_find_ungrouped_fil [INFO] Checking Configuration
6.1.12_find_ungrouped_fil [INFO] Performing audit
6.1.12_find_ungrouped_fil [INFO] Checking if there are ungrouped files
6.1.12_find_ungrouped_fil [ OK ] No ungrouped files found
6.1.12_find_ungrouped_fil [ OK ] Check Passed
6.1.13_find_suid_files    [INFO] Working on 6.1.13_find_suid_files
6.1.13_find_suid_files    [INFO] [DESCRIPTION] Find SUID system executables.
6.1.13_find_suid_files    [INFO] Checking Configuration
6.1.13_find_suid_files    [INFO] Performing audit
6.1.13_find_suid_files    [INFO] Checking if there are suid files
6.1.13_find_suid_files    [ OK ] No unknown suid files found
6.1.13_find_suid_files    [ OK ] Check Passed
6.1.14_find_sgid_files    [INFO] Working on 6.1.14_find_sgid_files
6.1.14_find_sgid_files    [INFO] [DESCRIPTION] Find SGID system executables.
6.1.14_find_sgid_files    [INFO] Checking Configuration
6.1.14_find_sgid_files    [INFO] Performing audit
6.1.14_find_sgid_files    [INFO] Checking if there are sgid files
6.1.14_find_sgid_files    [ OK ] No unknown sgid files found
6.1.14_find_sgid_files    [ OK ] Check Passed
6.1.2_etc_passwd_permissi [INFO] Working on 6.1.2_etc_passwd_permissions
6.1.2_etc_passwd_permissi [INFO] [DESCRIPTION] Check 644 permissions and root:root ownership on /etc/passwd
6.1.2_etc_passwd_permissi [INFO] Checking Configuration
6.1.2_etc_passwd_permissi [INFO] Performing audit
6.1.2_etc_passwd_permissi [ OK ] /etc/passwd has correct permissions
6.1.2_etc_passwd_permissi [ OK ] /etc/passwd has correct ownership
6.1.2_etc_passwd_permissi [ OK ] Check Passed
6.1.3_etc_gshadow-_permis [INFO] Working on 6.1.3_etc_gshadow-_permissions
6.1.3_etc_gshadow-_permis [INFO] [DESCRIPTION] Check 640 permissions and root:root ownership on /etc/gshadow-
6.1.3_etc_gshadow-_permis [INFO] Checking Configuration
6.1.3_etc_gshadow-_permis [INFO] Performing audit
6.1.3_etc_gshadow-_permis [ OK ] /etc/gshadow- does not exist
6.1.3_etc_gshadow-_permis [ OK ] Check Passed
6.1.4_etc_shadow_permissi [INFO] Working on 6.1.4_etc_shadow_permissions
6.1.4_etc_shadow_permissi [INFO] [DESCRIPTION] Check 640 permissions and root:root ownership on /etc/shadow
6.1.4_etc_shadow_permissi [INFO] Checking Configuration
6.1.4_etc_shadow_permissi [INFO] Performing audit
6.1.4_etc_shadow_permissi [ OK ] /etc/shadow has correct permissions
6.1.4_etc_shadow_permissi [ OK ] /etc/shadow has correct ownership
6.1.4_etc_shadow_permissi [ OK ] Check Passed
6.1.5_etc_group_permissio [INFO] Working on 6.1.5_etc_group_permissions
6.1.5_etc_group_permissio [INFO] [DESCRIPTION] Check 644 permissions and root:root ownership on /etc/group
6.1.5_etc_group_permissio [INFO] Checking Configuration
6.1.5_etc_group_permissio [INFO] Performing audit
6.1.5_etc_group_permissio [ OK ] /etc/group has correct permissions
6.1.5_etc_group_permissio [ OK ] /etc/group has correct ownership
6.1.5_etc_group_permissio [ OK ] Check Passed
6.1.6_etc_passwd-_permiss [INFO] Working on 6.1.6_etc_passwd-_permissions
6.1.6_etc_passwd-_permiss [INFO] [DESCRIPTION] Check 600 permissions and root:root ownership on /etc/passwd-
6.1.6_etc_passwd-_permiss [INFO] Checking Configuration
6.1.6_etc_passwd-_permiss [INFO] Performing audit
6.1.6_etc_passwd-_permiss [ OK ] /etc/passwd- does not exist
6.1.6_etc_passwd-_permiss [ OK ] Check Passed
6.1.7_etc_shadow-_permiss [INFO] Working on 6.1.7_etc_shadow-_permissions
6.1.7_etc_shadow-_permiss [INFO] [DESCRIPTION] Check 600 permissions and root:shadow ownership on /etc/shadow-
6.1.7_etc_shadow-_permiss [INFO] Checking Configuration
6.1.7_etc_shadow-_permiss [INFO] Performing audit
6.1.7_etc_shadow-_permiss [ OK ] /etc/shadow- does not exist
6.1.7_etc_shadow-_permiss [ OK ] Check Passed
6.1.8_etc_group-_permissi [INFO] Working on 6.1.8_etc_group-_permissions
6.1.8_etc_group-_permissi [INFO] [DESCRIPTION] Check 600 permissions and root:root ownership on /etc/group-
6.1.8_etc_group-_permissi [INFO] Checking Configuration
6.1.8_etc_group-_permissi [INFO] Performing audit
6.1.8_etc_group-_permissi [ OK ] /etc/group- does not exist
6.1.8_etc_group-_permissi [ OK ] Check Passed
6.1.9_etc_gshadow_permiss [INFO] Working on 6.1.9_etc_gshadow_permissions
6.1.9_etc_gshadow_permiss [INFO] [DESCRIPTION] Check 640 permissions and root:root ownership on /etc/gshadow
6.1.9_etc_gshadow_permiss [INFO] Checking Configuration
6.1.9_etc_gshadow_permiss [INFO] Performing audit
6.1.9_etc_gshadow_permiss [ OK ] /etc/gshadow has correct permissions
6.1.9_etc_gshadow_permiss [ OK ] /etc/gshadow has correct ownership
6.1.9_etc_gshadow_permiss [ OK ] Check Passed
6.2.10_check_user_dot_fil [INFO] Working on 6.2.10_check_user_dot_file_perm
6.2.10_check_user_dot_fil [INFO] [DESCRIPTION] Check user dot file permissions.
6.2.10_check_user_dot_fil [INFO] Checking Configuration
6.2.10_check_user_dot_fil [INFO] Performing audit
6.2.10_check_user_dot_fil [ OK ] Dot file permission in users directories are correct
6.2.10_check_user_dot_fil [ OK ] Check Passed
6.2.11_find_user_forward_ [INFO] Working on 6.2.11_find_user_forward_files
6.2.11_find_user_forward_ [INFO] [DESCRIPTION] There is no user .forward files.
6.2.11_find_user_forward_ [INFO] Checking Configuration
6.2.11_find_user_forward_ [INFO] Performing audit
6.2.11_find_user_forward_ [ OK ] No .forward present in users home directory
6.2.11_find_user_forward_ [ OK ] Check Passed
6.2.12_find_user_netrc_fi [INFO] Working on 6.2.12_find_user_netrc_files
6.2.12_find_user_netrc_fi [INFO] [DESCRIPTION] There is no user .netrc files.
6.2.12_find_user_netrc_fi [INFO] Checking Configuration
6.2.12_find_user_netrc_fi [INFO] Performing audit
6.2.12_find_user_netrc_fi [ OK ] No .netrc present in users home directory
6.2.12_find_user_netrc_fi [ OK ] Check Passed
6.2.13_set_perm_on_user_n [INFO] Working on 6.2.13_set_perm_on_user_netrc
6.2.13_set_perm_on_user_n [INFO] [DESCRIPTION] Ensure users' .netrc Files are not group or world accessible
6.2.13_set_perm_on_user_n [INFO] Checking Configuration
6.2.13_set_perm_on_user_n [INFO] Performing audit
6.2.13_set_perm_on_user_n [ OK ] permission 600 set on .netrc users files
6.2.13_set_perm_on_user_n [ OK ] Check Passed
6.2.14_find_user_rhosts_f [INFO] Working on 6.2.14_find_user_rhosts_files
6.2.14_find_user_rhosts_f [INFO] [DESCRIPTION] No user's .rhosts file.
6.2.14_find_user_rhosts_f [INFO] Checking Configuration
6.2.14_find_user_rhosts_f [INFO] Performing audit
6.2.14_find_user_rhosts_f [ OK ] No .rhosts present in users home directory
6.2.14_find_user_rhosts_f [ OK ] Check Passed
6.2.15_find_passwd_group_ [INFO] Working on 6.2.15_find_passwd_group_inconsistencies
6.2.15_find_passwd_group_ [INFO] [DESCRIPTION] There is no group in /etc/passwd that is not in /etc/group.
6.2.15_find_passwd_group_ [INFO] Checking Configuration
6.2.15_find_passwd_group_ [INFO] Performing audit
6.2.15_find_passwd_group_ [ OK ] passwd and group Groups are consistent
6.2.15_find_passwd_group_ [ OK ] Check Passed
6.2.16_check_duplicate_ui [INFO] Working on 6.2.16_check_duplicate_uid
6.2.16_check_duplicate_ui [INFO] [DESCRIPTION] Ensure no duplicate UIDs exist
6.2.16_check_duplicate_ui [INFO] Checking Configuration
6.2.16_check_duplicate_ui [INFO] Performing audit
6.2.16_check_duplicate_ui [ OK ] No duplicate UIDs
6.2.16_check_duplicate_ui [ OK ] Check Passed
6.2.17_check_duplicate_gi [INFO] Working on 6.2.17_check_duplicate_gid
6.2.17_check_duplicate_gi [INFO] [DESCRIPTION] Ensure no duplicate GIDs exist
6.2.17_check_duplicate_gi [INFO] Checking Configuration
6.2.17_check_duplicate_gi [INFO] Performing audit
6.2.17_check_duplicate_gi [ OK ] No duplicate GIDs
6.2.17_check_duplicate_gi [ OK ] Check Passed
6.2.18_check_duplicate_us [INFO] Working on 6.2.18_check_duplicate_username
6.2.18_check_duplicate_us [INFO] [DESCRIPTION] There is no duplicate usernames.
6.2.18_check_duplicate_us [INFO] Checking Configuration
6.2.18_check_duplicate_us [INFO] Performing audit
6.2.18_check_duplicate_us [ OK ] No duplicate usernames
6.2.18_check_duplicate_us [ OK ] Check Passed
6.2.19_check_duplicate_gr [INFO] Working on 6.2.19_check_duplicate_groupname
6.2.19_check_duplicate_gr [INFO] [DESCRIPTION] There is no duplicate group names.
6.2.19_check_duplicate_gr [INFO] Checking Configuration
6.2.19_check_duplicate_gr [INFO] Performing audit
6.2.19_check_duplicate_gr [ OK ] No duplicate groupnames
6.2.19_check_duplicate_gr [ OK ] Check Passed
6.2.1_remove_empty_passwo [INFO] Working on 6.2.1_remove_empty_password_field
6.2.1_remove_empty_passwo [INFO] [DESCRIPTION] Ensure password fields are not empty in /etc/shadow.
6.2.1_remove_empty_passwo [INFO] Checking Configuration
6.2.1_remove_empty_passwo [INFO] Performing audit
6.2.1_remove_empty_passwo [INFO] Checking if accounts have an empty password
6.2.1_remove_empty_passwo [ OK ] All accounts have a password
6.2.1_remove_empty_passwo [ OK ] Check Passed
6.2.20_shadow_group_empty [INFO] Working on 6.2.20_shadow_group_empty
6.2.20_shadow_group_empty [INFO] [DESCRIPTION] There is no user in shadow group (that can read /etc/shadow file).
6.2.20_shadow_group_empty [INFO] Checking Configuration
6.2.20_shadow_group_empty [INFO] Performing audit
6.2.20_shadow_group_empty [INFO] shadow group exists
6.2.20_shadow_group_empty [ OK ] No user belongs to shadow group
6.2.20_shadow_group_empty [INFO] Checking if a user has 42 as primary group
6.2.20_shadow_group_empty [ OK ] No user has shadow id as their primary group
6.2.20_shadow_group_empty [ OK ] Check Passed
6.2.2_remove_legacy_passw [INFO] Working on 6.2.2_remove_legacy_passwd_entries
6.2.2_remove_legacy_passw [INFO] [DESCRIPTION] Verify no legacy + entries exist in /etc/password file.
6.2.2_remove_legacy_passw [INFO] Checking Configuration
6.2.2_remove_legacy_passw [INFO] Performing audit
6.2.2_remove_legacy_passw [INFO] Checking if accounts have a legacy password entry
6.2.2_remove_legacy_passw [ OK ] All accounts have a valid password entry format
6.2.2_remove_legacy_passw [ OK ] Check Passed
6.2.3_users_valid_homedir [INFO] Working on 6.2.3_users_valid_homedir
6.2.3_users_valid_homedir [INFO] [DESCRIPTION] Users are assigned valid home directories.
6.2.3_users_valid_homedir [INFO] Checking Configuration
6.2.3_users_valid_homedir [INFO] Performing audit
[  656.545414] hrtimer: interrupt took 18293850 ns
6.2.3_users_valid_homedir [ OK ] All home directories exists
6.2.3_users_valid_homedir [ OK ] Check Passed
6.2.4_remove_legacy_shado [INFO] Working on 6.2.4_remove_legacy_shadow_entries
6.2.4_remove_legacy_shado [INFO] [DESCRIPTION] Verify no legacy + entries exist in /etc/shadow file.
6.2.4_remove_legacy_shado [INFO] Checking Configuration
6.2.4_remove_legacy_shado [INFO] Performing audit
6.2.4_remove_legacy_shado [INFO] Checking if accounts have a legacy password entry
6.2.4_remove_legacy_shado [ OK ] All accounts have a valid password entry format
6.2.4_remove_legacy_shado [ OK ] Check Passed
6.2.5_remove_legacy_group [INFO] Working on 6.2.5_remove_legacy_group_entries
6.2.5_remove_legacy_group [INFO] [DESCRIPTION] Verify no legacy + entries exist in /etc/group file.
6.2.5_remove_legacy_group [INFO] Checking Configuration
6.2.5_remove_legacy_group [INFO] Performing audit
6.2.5_remove_legacy_group [INFO] Checking if accounts have a legacy group entry
6.2.5_remove_legacy_group [ OK ] All accounts have a valid group entry format
6.2.5_remove_legacy_group [ OK ] Check Passed
6.2.6_find_0_uid_non_root [INFO] Working on 6.2.6_find_0_uid_non_root_account
6.2.6_find_0_uid_non_root [INFO] [DESCRIPTION] Verify root is the only UID 0 account.
6.2.6_find_0_uid_non_root [INFO] Checking Configuration
6.2.6_find_0_uid_non_root [INFO] Performing audit
6.2.6_find_0_uid_non_root [INFO] Checking if accounts have uid 0
6.2.6_find_0_uid_non_root [ OK ] No account with uid 0 appart from root
6.2.6_find_0_uid_non_root [ OK ] Check Passed
6.2.7_sanitize_root_path  [INFO] Working on 6.2.7_sanitize_root_path
6.2.7_sanitize_root_path  [INFO] [DESCRIPTION] Ensure root path integrity.
6.2.7_sanitize_root_path  [INFO] Checking Configuration
6.2.7_sanitize_root_path  [INFO] Performing audit
6.2.7_sanitize_root_path  [ OK ] root PATH is secure
6.2.7_sanitize_root_path  [ OK ] Check Passed
6.2.8_check_user_dir_perm [INFO] Working on 6.2.8_check_user_dir_perm
6.2.8_check_user_dir_perm [INFO] [DESCRIPTION] Check permissions on user home directories.
6.2.8_check_user_dir_perm [INFO] Checking Configuration
6.2.8_check_user_dir_perm [INFO] Performing audit
6.2.8_check_user_dir_perm [ OK ] No incorrect permissions on home directories
6.2.8_check_user_dir_perm [ OK ] Check Passed
6.2.9_users_valid_homedir [INFO] Working on 6.2.9_users_valid_homedir
[  666.624686] systemd-journald[264]: Data hash table of /var/log/journal/1234567800000000000002f599de2c65/system.journal has a fill level at 75.2 (1780 of 2368 items, 1363968 file
[  666.626147] systemd-journald[264]: /var/log/journal/1234567800000000000002f599de2c65/system.journal: Journal header limits reached or header out-of-date, rotating.
6.2.9_users_valid_homedir [INFO] [DESCRIPTION] Ensure users own their home directories
6.2.9_users_valid_homedir [INFO] Checking Configuration
6.2.9_users_valid_homedir [INFO] Performing audit
6.2.9_users_valid_homedir [ OK ] All home directories exists
6.2.9_users_valid_homedir [ OK ] All home directories have correct ownership
6.2.9_users_valid_homedir [ OK ] Check Passed
<IP_ADDRESS>_disable_cramfs   [INFO] Working on <IP_ADDRESS>_disable_cramfs
<IP_ADDRESS>_disable_cramfs   [INFO] [DESCRIPTION] Disable mounting of cramfs filesystems.
<IP_ADDRESS>_disable_cramfs   [INFO] Checking Configuration
<IP_ADDRESS>_disable_cramfs   [INFO] Performing audit
<IP_ADDRESS>_disable_cramfs   [ OK ] CONFIG_CRAMFS is disabled
<IP_ADDRESS>_disable_cramfs   [ OK ] Check Passed
<IP_ADDRESS>_disable_usb_dev [INFO] Working on <IP_ADDRESS>_disable_usb_devices
<IP_ADDRESS>_disable_usb_dev [INFO] [DESCRIPTION] USB devices are disabled.
<IP_ADDRESS>_disable_usb_dev [INFO] Checking Configuration
<IP_ADDRESS>_disable_usb_dev [INFO] Performing audit
<IP_ADDRESS>_disable_usb_dev [ OK ] ACTION=="add", SUBSYSTEMS=="usb", TEST=="authorized_default", ATTR{authorized_default}="0" is present in /etc/udev/rules.d/10-CIS_99.2_usb_devices.s
<IP_ADDRESS>_disable_usb_dev [ OK ] Check Passed
99.1.3_acc_sudoers_no_all [INFO] Working on 99.1.3_acc_sudoers_no_all
99.1.3_acc_sudoers_no_all [INFO] [DESCRIPTION] Checks there are no carte-blanche authorization in sudoers file(s).
99.1.3_acc_sudoers_no_all [INFO] Checking Configuration
99.1.3_acc_sudoers_no_all [INFO] Performing audit
99.1.3_acc_sudoers_no_all [ OK ] root ALL=(ALL:ALL) ALL is present in /etc/sudoers but was EXCUSED because root is part of exceptions.
99.1.3_acc_sudoers_no_all [ OK ] %sudo ALL=(ALL:ALL) ALL is present in /etc/sudoers but was EXCUSED because %sudo is part of exceptions.
99.1.3_acc_sudoers_no_all [ OK ] There is no carte-blanche sudo permission in /etc/sudoers.d/README
99.1.3_acc_sudoers_no_all [ OK ] There is no carte-blanche sudo permission in /etc/sudoers.d/keepssh
99.1.3_acc_sudoers_no_all [ OK ] %wheel  ALL=(ALL:ALL) NOPASSWD: ALL is present in /etc/sudoers.d/wheel but was EXCUSED because %wheel is part of exceptions.
99.1.3_acc_sudoers_no_all [ OK ] Check Passed
99.2.2_disable_telnet_ser [INFO] Working on 99.2.2_disable_telnet_server
99.2.2_disable_telnet_ser [INFO] [DESCRIPTION] Ensure telnet server is not enabled. Recommended alternative : sshd (OpenSSH-server).
99.2.2_disable_telnet_ser [INFO] Checking Configuration
99.2.2_disable_telnet_ser [INFO] Performing audit
99.2.2_disable_telnet_ser [ OK ] telnetd is absent
99.2.2_disable_telnet_ser [ OK ] inetutils-telnetd is absent
99.2.2_disable_telnet_ser [ OK ] telnetd-ssl is absent
99.2.2_disable_telnet_ser [ OK ] krb5-telnetd is absent
99.2.2_disable_telnet_ser [ OK ] heimdal-servers is absent
99.2.2_disable_telnet_ser [ OK ] Check Passed
<IP_ADDRESS>_install_tcp_wrap [INFO] Working on <IP_ADDRESS>_install_tcp_wrapper
<IP_ADDRESS>_install_tcp_wrap [INFO] [DESCRIPTION] Install TCP wrappers for simple access list management and standardized logging method for services.
<IP_ADDRESS>_install_tcp_wrap [INFO] Checking Configuration
<IP_ADDRESS>_install_tcp_wrap [INFO] Performing audit
<IP_ADDRESS>_install_tcp_wrap [ OK ] tcpd is installed
<IP_ADDRESS>_install_tcp_wrap [ OK ] Check Passed
<IP_ADDRESS>_hosts_allow      [INFO] Working on <IP_ADDRESS>_hosts_allow
<IP_ADDRESS>_hosts_allow      [INFO] [DESCRIPTION] Create /etc/hosts.allow .
<IP_ADDRESS>_hosts_allow      [INFO] Checking Configuration
<IP_ADDRESS>_hosts_allow      [INFO] Performing audit
<IP_ADDRESS>_hosts_allow      [ OK ] /etc/hosts.allow exist
<IP_ADDRESS>_hosts_allow      [ OK ] Check Passed
<IP_ADDRESS>_hosts_deny       [INFO] Working on <IP_ADDRESS>_hosts_deny
<IP_ADDRESS>_hosts_deny       [INFO] [DESCRIPTION] Create /etc/hosts.deny .
<IP_ADDRESS>_hosts_deny       [INFO] Checking Configuration
<IP_ADDRESS>_hosts_deny       [INFO] Performing audit
<IP_ADDRESS>_hosts_deny       [ OK ] /etc/hosts.deny exists, checking configuration
<IP_ADDRESS>_hosts_deny       [ OK ] ALL: ALL is present in /etc/hosts.deny
<IP_ADDRESS>_hosts_deny       [ OK ] Check Passed
<IP_ADDRESS>_hosts_allow_perm [INFO] Working on <IP_ADDRESS>_hosts_allow_permissions
<IP_ADDRESS>_hosts_allow_perm [INFO] [DESCRIPTION] Check 644 permissions and root:root ownership on /hosts.allow .
<IP_ADDRESS>_hosts_allow_perm [INFO] Checking Configuration
<IP_ADDRESS>_hosts_allow_perm [INFO] Performing audit
<IP_ADDRESS>_hosts_allow_perm [ OK ] /etc/hosts.allow exist
<IP_ADDRESS>_hosts_allow_perm [ OK ] /etc/hosts.allow has correct permissions
<IP_ADDRESS>_hosts_allow_perm [ OK ] /etc/hosts.allow has correct ownership
<IP_ADDRESS>_hosts_allow_perm [ OK ] Check Passed
<IP_ADDRESS>_hosts_deny_permi [INFO] Working on <IP_ADDRESS>_hosts_deny_permissions
<IP_ADDRESS>_hosts_deny_permi [INFO] [DESCRIPTION] Check 644 permissions and root:root ownership on /etc/hosts.deny .
<IP_ADDRESS>_hosts_deny_permi [INFO] Checking Configuration
<IP_ADDRESS>_hosts_deny_permi [INFO] Performing audit
<IP_ADDRESS>_hosts_deny_permi [ OK ] /etc/hosts.deny exist
<IP_ADDRESS>_hosts_deny_permi [ OK ] /etc/hosts.deny has correct permissions
<IP_ADDRESS>_hosts_deny_permi [ OK ] /etc/hosts.deny has correct ownership
<IP_ADDRESS>_hosts_deny_permi [ OK ] Check Passed
99.4.0_enable_auditd_kern [INFO] Working on 99.4.0_enable_auditd_kernel
99.4.0_enable_auditd_kern [INFO] [DESCRIPTION] Ensure CONFIG_AUDIT is enabled in your running kernel.
99.4.0_enable_auditd_kern [INFO] Checking Configuration
99.4.0_enable_auditd_kern [INFO] Performing audit
99.4.0_enable_auditd_kern [ OK ] CONFIG_AUDIT is enabled
99.4.0_enable_auditd_kern [ OK ] Check Passed
<IP_ADDRESS>_ssh_auth_pubk_on [INFO] Working on <IP_ADDRESS>_ssh_auth_pubk_only
<IP_ADDRESS>_ssh_auth_pubk_on [INFO] [DESCRIPTION] Ensure that sshd only allows authentication through public key.
<IP_ADDRESS>_ssh_auth_pubk_on [INFO] Checking Configuration
<IP_ADDRESS>_ssh_auth_pubk_on [INFO] Performing audit
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] openssh-server is installed
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^PubkeyAuthentication[[:space:]]+yes is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^PasswordAuthentication[[:space:]]+no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^KbdInteractiveAuthentication[[:space:]]+no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^KerberosAuthentication[[:space:]]+no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^ChallengeResponseAuthentication[[:space:]]+no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^HostbasedAuthentication[[:space:]]+no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^GSSAPIAuthentication[[:space:]]+no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] ^GSSAPIKeyExchange[[:space:]]+no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_auth_pubk_on [ OK ] Check Passed
<IP_ADDRESS>_ssh_cry_rekey    [INFO] Working on <IP_ADDRESS>_ssh_cry_rekey
<IP_ADDRESS>_ssh_cry_rekey    [INFO] [DESCRIPTION] Checking rekey limit for time (6 hours) or volume (512Mio) whichever comes first.
<IP_ADDRESS>_ssh_cry_rekey    [INFO] Checking Configuration
<IP_ADDRESS>_ssh_cry_rekey    [INFO] Performing audit
<IP_ADDRESS>_ssh_cry_rekey    [ OK ] openssh-server is installed
<IP_ADDRESS>_ssh_cry_rekey    [ OK ] ^RekeyLimit[[:space:]]*512M\s+6h is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_cry_rekey    [ OK ] Check Passed
<IP_ADDRESS>_ssh_disable_feat [INFO] Working on <IP_ADDRESS>_ssh_disable_features
<IP_ADDRESS>_ssh_disable_feat [INFO] [DESCRIPTION] Check all special features in sshd_config are disabled
<IP_ADDRESS>_ssh_disable_feat [INFO] Checking Configuration
<IP_ADDRESS>_ssh_disable_feat [INFO] Performing audit
<IP_ADDRESS>_ssh_disable_feat [ OK ] openssh-server is installed
<IP_ADDRESS>_ssh_disable_feat [ OK ] ^AllowAgentForwarding[[:space:]]*no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_disable_feat [ OK ] ^AllowTcpForwarding[[:space:]]*no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_disable_feat [ OK ] ^AllowStreamLocalForwarding[[:space:]]*no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_disable_feat [ OK ] ^PermitTunnel[[:space:]]*no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_disable_feat [ OK ] ^PermitUserRC[[:space:]]*no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_disable_feat [ OK ] ^GatewayPorts[[:space:]]*no is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_disable_feat [ OK ] Check Passed
<IP_ADDRESS>_ssh_keys_from    [INFO] Working on <IP_ADDRESS>_ssh_keys_from
<IP_ADDRESS>_ssh_keys_from    [INFO] [DESCRIPTION] Check <from> field in ssh authorized keys files for users with login shell, and allowed IP if available.
<IP_ADDRESS>_ssh_keys_from    [INFO] Checking Configuration
<IP_ADDRESS>_ssh_keys_from    [INFO] Performing audit
<IP_ADDRESS>_ssh_keys_from    [INFO] User root has a valid shell (/bin/bash).
<IP_ADDRESS>_ssh_keys_from    [INFO] User sync has a valid shell (/bin/sync).
<IP_ADDRESS>_ssh_keys_from    [INFO] User sync has no home directory.
<IP_ADDRESS>_ssh_keys_from    [INFO] User dev has a valid shell (/bin/bash).
<IP_ADDRESS>_ssh_keys_from    [WARN] dev has a valid shell but no authorized_keys file
<IP_ADDRESS>_ssh_keys_from    [ OK ] Check Passed
<IP_ADDRESS>_ssh_strict_modes [INFO] Working on <IP_ADDRESS>_ssh_strict_modes
<IP_ADDRESS>_ssh_strict_modes [INFO] [DESCRIPTION] Ensure home directory and ssh sensitive files are verified (not publicly readable) before connecting.
<IP_ADDRESS>_ssh_strict_modes [INFO] Checking Configuration
<IP_ADDRESS>_ssh_strict_modes [INFO] Performing audit
<IP_ADDRESS>_ssh_strict_modes [ OK ] openssh-server is installed
<IP_ADDRESS>_ssh_strict_modes [ OK ] ^StrictModes[[:space:]]*yes is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_strict_modes [ OK ] Check Passed
<IP_ADDRESS>_ssh_sys_accept_e [INFO] Working on <IP_ADDRESS>_ssh_sys_accept_env
<IP_ADDRESS>_ssh_sys_accept_e [INFO] [DESCRIPTION] Restrict which user's variables are accepted by ssh daemon
<IP_ADDRESS>_ssh_sys_accept_e [INFO] Checking Configuration
<IP_ADDRESS>_ssh_sys_accept_e [INFO] Performing audit
<IP_ADDRESS>_ssh_sys_accept_e [ OK ] openssh-server is installed
<IP_ADDRESS>_ssh_sys_accept_e [ OK ] ^\s*AcceptEnv\s+LANG LC_\* is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_sys_accept_e [ OK ] Check Passed
<IP_ADDRESS>_ssh_sys_no_legac [INFO] Working on <IP_ADDRESS>_ssh_sys_no_legacy
<IP_ADDRESS>_ssh_sys_no_legac [INFO] [DESCRIPTION] Ensure that legacy services rlogin, rlogind and rcp are disabled and not installed
<IP_ADDRESS>_ssh_sys_no_legac [INFO] Checking Configuration
<IP_ADDRESS>_ssh_sys_no_legac [INFO] Performing audit
<IP_ADDRESS>_ssh_sys_no_legac [INFO] Checking if rlogin is enabled and installed
<IP_ADDRESS>_ssh_sys_no_legac [ OK ] rlogin is disabled
<IP_ADDRESS>_ssh_sys_no_legac [ OK ] rlogin is not installed
<IP_ADDRESS>_ssh_sys_no_legac [INFO] Checking if rlogind is enabled and installed
<IP_ADDRESS>_ssh_sys_no_legac [ OK ] rlogind is disabled
<IP_ADDRESS>_ssh_sys_no_legac [ OK ] rlogind is not installed
<IP_ADDRESS>_ssh_sys_no_legac [INFO] Checking if rcp is enabled and installed
<IP_ADDRESS>_ssh_sys_no_legac [ OK ] rcp is disabled
<IP_ADDRESS>_ssh_sys_no_legac [ OK ] rcp is not installed
<IP_ADDRESS>_ssh_sys_no_legac [ OK ] Check Passed
<IP_ADDRESS>_ssh_sys_sandbox  [INFO] Working on <IP_ADDRESS>_ssh_sys_sandbox
<IP_ADDRESS>_ssh_sys_sandbox  [INFO] [DESCRIPTION] Check UsePrivilegeSeparation set to sandbox.
<IP_ADDRESS>_ssh_sys_sandbox  [INFO] Checking Configuration
<IP_ADDRESS>_ssh_sys_sandbox  [INFO] Performing audit
<IP_ADDRESS>_ssh_sys_sandbox  [ OK ] openssh-server is installed
<IP_ADDRESS>_ssh_sys_sandbox  [ OK ] ^UsePrivilegeSeparation[[:space:]]*sandbox is present in /etc/ssh/sshd_config
<IP_ADDRESS>_ssh_sys_sandbox  [ OK ] Check Passed
<IP_ADDRESS>.1_acc_logindefs_ [INFO] Working on <IP_ADDRESS>.1_acc_logindefs_sha512
<IP_ADDRESS>.1_acc_logindefs_ [INFO] [DESCRIPTION] Check that any password that will be created will be SHA512 hashed and salted
<IP_ADDRESS>.1_acc_logindefs_ [INFO] Checking Configuration
<IP_ADDRESS>.1_acc_logindefs_ [INFO] Performing audit
<IP_ADDRESS>.1_acc_logindefs_ [ OK ] ENCRYPT_METHOD SHA512 is present in /etc/login.defs
<IP_ADDRESS>.1_acc_logindefs_ [ OK ] Check Passed
<IP_ADDRESS>.2_acc_shadow_sha [INFO] Working on <IP_ADDRESS>.2_acc_shadow_sha512
<IP_ADDRESS>.2_acc_shadow_sha [INFO] [DESCRIPTION] Check that any password that may exist in /etc/shadow is SHA512 hashed and salted
<IP_ADDRESS>.2_acc_shadow_sha [INFO] Checking Configuration
<IP_ADDRESS>.2_acc_shadow_sha [INFO] Performing audit
<IP_ADDRESS>.2_acc_shadow_sha [ OK ] User root has suitable SHA512 hashed password.
<IP_ADDRESS>.2_acc_shadow_sha [ OK ] User _cron-failure has a disabled password.
<IP_ADDRESS>.2_acc_shadow_sha [ OK ] Check Passed
99.99_check_distribution  [INFO] Working on 99.99_check_distribution
99.99_check_distribution  [INFO] [DESCRIPTION] Check the distribution and the distribution version
99.99_check_distribution  [INFO] 99.99_check_distribution is disabled, ignoring

Overview:
Overview of all related tasks to finish cis:

[x] #782
[x] #783
[x] #784
[x] #785
[x] #786
[x] #787
[x] #823
[x] #838
[x] #842
[x] #912
[x] #913
[x] #937
[x] #939
[x] #943
[x] #946
[ ] #993
[ ] #839


Warped Gaussian Processes

Implement warped gaussian processes as outlined in Ghahramani et. al

Warped GP models added in commits 57c82bed5991e1c37537b7eed0f369e52065b021 and ea1e7ed26bd2e9d7b5ca0d92b730fc987fcd4762. Now working on model code verification


v9 support

Hi,
Supporting the v9 versions (v9.3.x - v9.6.x) is a must if we want to use database as a service from AWS Aurora PostgreSQL or Amazon RDS service or Google Cloud SQL
the vapor server apps are prime candidate  for microservices based server instances deployed into docker farms in AWS or Google or Google App Engine instances
To fully integrate them with cloud provider, they must be able to use database as a service mainly AWS Aurora (MySQL, PostgreSQL) Amazon RDS (MySQL, PostgreSQL) Google Cloud SQL (MySQL PostgreSQL)
Those cloud vendors supporting the v9 PostgreSQL db instances, mainly the last v9 version the v9.6.6.
The v10 version is not so broadly used yet. So to cover the majority of use cases vapor needs to support PostgreSQL v9 preferably v9.6.6
Regards
Sandor Dobi

I think this is actually just a vapor/fluent-postgresql issue since (iirc) it was complaining about the auto generated ID type. @SandorDobi can you please confirm that's the error you were getting?
If so, that should be an easy enough fix. The difficulty is figuring out which version of PostgreSQL you intend to connect to. This will probably end up being a configuration option on the FluentPostgreSQL provider (either specifically to disable the new "generated" ID syntax, or to specify version more broadly)

See the relevant code here: https://github.com/vapor/fluent-postgresql/blob/beta/Sources/FluentPostgreSQL/PostgreSQLDatabase%2BSchemaSupporting.swift#L21

Yes,
The correct error and the databaselog is the following:
Migrating psql DB
[psql] [2018-02-15 20:32:36 +0000] SELECT count(*) as "fluentAggregate" FROM "fluent" []
[psql] [2018-02-15 20:32:36 +0000] CREATE TABLE "fluent" ("id" UUID PRIMARY KEY, "name" TEXT NOT NULL, "batch" BIGINT NOT NULL, "createdAt" TIMESTAMP, "updatedAt" TIMESTAMP) []
[psql] [2018-02-15 20:32:36 +0000] SELECT "fluent".* FROM "fluent" ORDER BY "fluent"."batch" DESC LIMIT 1 OFFSET 0 []
[psql] [2018-02-15 20:32:36 +0000] SELECT "fluent".* FROM "fluent" WHERE ("fluent"."name" = $1) LIMIT 1 OFFSET 0 ["4 bytes"]
[psql] [2018-02-15 20:32:36 +0000] CREATE TABLE "todos" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "title" TEXT NOT NULL) []
crash... ⚠ [PostgreSQL.PostgreSQLDiagnosticResponse.scanner_yyerror: ERROR: syntax error at or near "GENERATED"] [Possible causes: syntax error at or near "GENERATED"]

It is a new vapor beta app where todo model was changed to PostgreSQL from SQLite, otherways it is unchanged.
The used database server: v<IP_ADDRESS>
I think for start it would be very good if we can support the v9.6.x.x,  this is the latest of the v9 series and it is very popular.

Sounds good. Closing in favor of https://github.com/vapor/fluent-postgresql/issues/6


Where is graph_utils library imported from?

Hello,
The docs (here: http://maestro.ece.gatech.edu/docs/build/html/maestro_output_analysis/maestro_output_analysis.html) state that graph_utils is imported but no reference is shown. Whereas numpy, pandas, matplotlib are referenced to show how to install them.

My apologies. I now see the graph_util.py is located in tools/jupyter_notebook in this repo. Thank You


feat: add android packaging

Many users want to deploy ekuiper on Android, in order to facilitate this part of the user, this PR compiles the ekuiper cross-platform to Android, and packages it to produce apk files.
Implementation:
Based on the cross-platform GUI toolkit fyne, using absolute path to read/write configuration files/logs, all configuration files and runtime files will be saved to /storage/emulated/0/ekuiper/ directory, if you need to modify the configuration information, please use the file manager to modify the corresponding file and then restart ekuiper.
Problems:
Can't get file storage permission automatically, need to enable it manually.

Thanks!

What is the ttf file for? Is it required or can we remove it?

When the UI needs to display non-ascii characters, it will be messed up without this font package (.tff), if the target users of this application are all English users, there is no problem to delete this font package and modify the corresponding theme file (theme.go).

Is it licensed?

This font is open source, its repository is at smiley-sans, it follows the SIL Open Font License 1.1. Users have the following permissions:

Private use
Commercial use
Modification
Distribution

Thanks!

What is the ttf file for? Is it required or can we remove it?

When the UI needs to display non-ascii characters, it will be messed up without this font package (.tff), if the target users of this application are all English users, there is no problem to delete this font package and modify the corresponding theme file (theme.go).

Is it licensed?

This font is open source, its repository is at smiley-sans, it follows the SIL Open Font License 1.1. Users have the following permissions:

Private use
Commercial use
Modification
Distribution

Looks like we need to delete the font as it does not allow commercial use which is conflict with Apache 2.0 license. Maybe we can add some instruction to the readme to guide users to add their own font.

Looks like we need to delete the font as it does not allow commercial use which is conflict with Apache 2.0 license. Maybe we can add some instruction to the readme to guide users to add their own font.

Sorry, I don't know much about these licenses. I'll follow up with a commit under this PR, remove the font package, and add documentation in README.md that supports non-ascii characters.

Thank you!


API endpoint for adding keys to existing accounts

#235 added the possibility for new accounts to have multiple keys. Changing the value does not affect existing accounts, and thus an endpoint for manually "syncing" the number of keys for given accounts could be useful.

@nanuuki If you guys can give any ETA on this issue? or provide any way to add keys for an existing account. It would be a massive help for my app usecase.

@sheerryy Unfortunately I can't give any hard ETA, but this feature is currently under development.

@nanuuki Any update on this issue?


Define slots for object wrappers

This PR defines __slots__ for the small classes which prevents the creation of an unnecessary __dict__  per class which can save a bit of memory since TensorFlow uses these wrappers in many places internally.

Sorry, I missed that some identity wrappers need to support weak references. I fixed that in the latest commit.


Code-sign installers

The experience is yucky because we don't have signatures for our installers. Let's look into it.

Certum will do code signing for free for open-source projects.

I just signed up to receive a free certificate. We'll see how far I can get...

@snoyberg It's not too bad. However, the "real deal" uses physical dongles to verify identity of the signer. But there are less secure versions. You can use Windows sign tool and a certificate from somewhere like Symantec.
https://msdn.microsoft.com/en-us/library/ms537361(v=vs.85).aspx

Automating the process has been a real pain for my team because of the physical dongle and certain permissions rules. Doing it by hand on the command-line is quite easy, however. You just need a certificate and an authority and signtool.exe will do all the work.

I'd already asked @borsboom, who's the release manager for stack, to look into automatically building a new MinGHC release together with each stack release (so that MinGHC's copy of stack doesn't fall out of date). Perhaps we can include in that process usage of signtool.exe. Going farther: maybe it's worth signing the stack.exe executable as well.

Windows do love them a good signature.

@3noch, @snoyberg : I've created a draft release at https://github.com/fpco/minghc/releases/tag/untagged-4ad38a4cde212186de53, which has signed installers (and the stack.exe they install is also signed).  Since this is my first attempt at building MinGHC, can you please sanity check them before I include them in the stack-<IP_ADDRESS> release announcement?

@borsboom Great work! I can see that the 64-bit 7.10.2 installer is signed, but the Timestamp says "Not available." Windows 10 SmartScreen is still discouraging me from running it. :(

@3noch: I've uploaded a new 64-bit 7.10.2 installer with a timestamp, give it a try!

@borsboom Nice! The time stamp is there now. Windows SmartScreen still warns me. I have no idea what to do about that.

Looks like stack.exe is signed too. I only tested 7.10.2 64-bit. If you have a signing script, you might want to just sign all exes that we install. Just an idea. I don't know how much good it would do.

I'm not finding any authoritative information through googling, but what I gather from a few different places is that having a signature won't automatically bypass SmartScreen.  That will go away once enough people download it and who don't flag it as malicious.  It also sounds like some extended validation certificates from specific CAs (Symantec and DigiCert wre mentioned) may, over time, become trusted so that all executables signed with those certificates don't get the warning by default.  shrug, doesn't seem like it's worth paying the big bucks for an EV certificate in the hopes that it might help eventually.  At least Windows doesn't make it especially difficult to bypass (it's actually less annoying than OS X's defaults).
Still worth signing, just so that "FP Complete" does at least appear.

Thanks @borsboom, closing as implemented.


typo in runner update status condition

Codecov Report

Merging #82 (06eff45) into main (94f8790) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #82   +/-   ##
=======================================
  Coverage   73.55%   73.55%
=======================================
  Files          12       12
  Lines         692      692
=======================================
  Hits          509      509
  Misses        183      183

Impacted Files
Coverage Δ

srcs/runners_manager/runner/Runner.py
95.45% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 94f8790...06eff45. Read the comment docs.


Make it possible to pin working files...

... pinned working files should stay open even if you open or close folder. I have some common files (like TODO.md) that I need to reopen every time.

#4429

I don't think this issue is duplicated or somehow could be closed after fixing #4429.
Even for a Project folder, when working with a file, I find myself need to open and check many other files. If we have the pin tab feature, after checking other files, I would like to just press Ctrl+F4 to close all but the main one.
There's Close other command on tab context menu, which we could create a key binding, but:

It doesn't work like multiple pinned tabs.
Keep pressing Ctrl+F4 is more intuitive for me.

Please reconsider this issue.


Support colourising output

Would be via a CLI flag, -C.
Requires an external library, none seem to exist for Java so it'd require binding to a C/++/Rust library I think...

I'll consider this "solved" via https://github.com/queer/hl


Is Flynn still maintained?

I would love to use and contribute to this project, but it looks to me to be unmaintained. Is that true?
Here is what I found:
The read me says

Flynn is very actively developed by Prime Directive, Inc. and the Flynn community.
https://github.com/flynn/flynn

In Sep 2017 @titanous said

We still have a full-time team working on Flynn, and are financially stable (and growing!). As I mentioned in the issue referenced above, our focus is on our paying customers since they are what allow us to continue building Flynn.
https://github.com/flynn/flynn/issues/4244

But...
No new commits since 2018...
No new releases since 2017...
https://releases.flynn.io/
No blog posts since 2017...
https://flynn.io/blog
No twitter activity since 2016...
https://twitter.com/flynnscale
It seems like this is not longer being maintained and I can't find any info on "Prime Directive, Inc"
I would love to use and contribute to this project. It is exactly what I need... but I need to see some signs of life first.
Is anyone out there?

This is a duplicate of https://github.com/flynn/flynn/issues/4271 but I think the answer may have changed.

It is exactly what I need...

there are alternatives

there are alternatives
@pouledodue please, do share!

caprover

CapRover doesn't have the same level of high-availability, its main node is a single-point-of-failure:
https://github.com/caprover/caprover/issues/162
https://github.com/caprover/caprover/issues/197
Whereas, from what I understand (I have used neither), none of the nodes in a Flynn cluster are a SPoF, because they elect a leader with Raft.

they say it is maintained but I see no sign of life either. It's sad.
Flynn is super easy to use but it never got the attention it deserved from the community. I think it still has a place in this market despite k8s growth. founders believe otherwise.
it would be nice to be honest with us and explain the current situation clearly. people like us invested in Flynn and are worried about its support and development in the future

In all fairness to the creators of Flynn, what market? You're not a paying customer of Flynn, are you? Nor would you have been a paying customer of Kubernetes, right?
The creators of Flynn don't owe us anything. The onus is on us to contribute maintenance work or financially. I for one would almost immediately pay $20/node/month for a cluster that they ran on my VPSes (e.g. DigitalOcean droplets that I pay for separately; not included in the $20). Even at $50/node/month I would consider it as I scaled up (thought I would start by running it on my own); there's no perfect apples-to-apples comparison with Heroku, but I think that would be comparable.
The $9,000/month listed on their pricing page, especially without taking into account cluster size, is obviously not something I could afford until I've scaled up a lot. I agree that it is disappointing that they don't feel like a funnel from the open source project is worth continuing to invest in.

@titanous  Could you confirm that you no longer have maintenance?

Flynn is still developed actively. We use it in production extensively and have a variety of projects in progress (take a look at the branch activity to see some of them). The nightly release channel is the correct channel to use, and we will be removing the stable channel soon.

@titanous Would you mind sharing a link to the nightly releases?
I see a Apr 24 2019 release here: https://github.com/flynn/flynn/releases
But that seems to be from year old (Apr 15 2018) code: https://github.com/flynn/flynn/commit/b4b05fce92da5fbc53b272362d87b994b88a3869
I see that there is some activity on a few topic branches: https://github.com/flynn/flynn/branches But I would expect those changes to be incorporated back to mainline/master on a regular basis. I think of updates to mainline (as well as frequent releases) as the indicator of an active software project.
I want to use Flynn (and would love to be a paying customer) but first I need to see some signs of life. Would you mind sharing some links or more info?

 Nightly channel is here: https://releases.flynn.io/#ch-nightly
And yes, of course the branches will be merged when they are ready, I was just providing some pointers to what we're currently working on.

@titanous  if you need resources you could do the same thing that the parse server community did
https://opencollective.com/parse-server
this product seems to me a change in the rules of the game,
since products like Heroku are very expensive and startups that try to get products very fast are bankrupt.
Continue is a very important project.

@titanous It would be helpful to keep stable release channel and just merge the nightly build you know for a fact (since you're using it on production a lot) is stable.
that will give us the confidence to update.

 Nightly channel is here: https://releases.flynn.io/#ch-nightly
And yes, of course the branches will be merged when they are ready, I was just providing some pointers to what we're currently working on.

https://releases.flynn.io is a 404 error page.

@bbaptist works for me... :/

I don't see how, I get a Google hosted 404 error page.

Huh, serious DNS caching errors, it shows up now.

@neil-wwt When you're searching for a self-hosted highly available PaaS service checkout https://github.com/rancher/rio
Rancher is actively developing their products and technically rio is a PaaS which can be hosted on a Kubernetes Cluster.

@Padrio do you think it is reliable? Last time I installed their main product about 6 months ago it was not reliable


Add warning category to broken link checker

Motivation

For some pages the link checker shows an error, even though the page technically works for users. For this reason, a warning category should be added.
Proposed Solution

Add a warning category which should include the following links:

Links to pages with status code 3xx
Links with invalid fragment
Links to pages with status code 403 because the page might just not be available to the link checker, even though it works for users.

And where are the links saved (db-table)?

We use django-linkcheck for this tasks, this library ships two models: Url which contains the url string, the status and message, and Link, which holds a many to many mapping from translation models to the Url model (to de-duplicate the checking process and check urls which appear in multiple pages only once).

I would add them to the fixtures.

Please do not include the real life example links below into our fixtures, they are just for testing purposes. Instead, I would recommend to use https://httpstat.us/ for the fixtures... you can e.g. generate links like:

https://httpstat.us/200#broken-anchor
https://httpstat.us/301
https://httpstat.us/302
https://httpstat.us/403

(Only adding the Link objects leads to an inconsistent test database - ideally you would also create a few new page translations which contain these links... then you could also do this the other way round: add the links via the content editor first, then export the data via the dumpdata command)

Can anybody please give examples for the mentioned links:
3xx, 200 with invalid fragments, 403

Some example links for the warning category:
"Broken external hash anchor"
When the message is "Broken external hash anchor", the link usually works, some examples:

https://www.augsburg.de/umwelt-soziales/gesundheit/coronavirus/diagnosestelle#c1098258
https://www.vhs-lernportal.de/wws/9.php#/wws/home.php
https://www.krankenkassenzentrale.de/wiki/international#

So the intention of this warning category would be to encourage content creators to either fix the anchor or remove everything after the #...
"301 Moved Permanently" and "302 Found"
When the message is "301 Moved Permanently" or "302 Found", the link also works, but is just a redirect...

https://www.zusammengegencorona.de/impfen/basiswissen-zum-impfen/impfmythen/#faqitem=b3a900e6-8fee-5b1d-828b-430395c12ac2
https://www.vhs-regensburg-land.de/programm/sprachen/kategorie/Alphabetisierung/137?Fsize=0#inhalt
http://www.amira-pisakids.de/#page=home
https://dormagen.de/tourismus-freizeit/vereine/#Schützen
https://www.integrationsbeauftragte.de/ib-de/amt-und-person/informationen-zum-coronavirus#

So content creators could replace the link with the new target to avoid the redirect (which might e.g. be removed in the future, who knows)...
One thing I didn't get is why most of the times the status is True and why it is False sometimes...
I believe this has something to do with that linkcheck cannot follow the redirect, see:
https://github.com/DjangoAdminHackers/django-linkcheck/blob/dfa053fbebd832e17de477dd9653472b775d0261/linkcheck/models.py#L323-L325
But again I'm not sure why...
"403 Forbidden"
These kind of errors are difficult to assess - sometimes, the error is justified, e.g.:

http://www2.infodienst.bzga.de/bot_Seite3333.html
http://wushu-coburg.jimdo.com/
https://www.land.nrw/corona-multilingual

and sometimes, this is just because the link target recognizes our link checker as bot and denies access, even if the link works for normal users:

https://home.meinestadt.de/augsburg/gesundheit/notdienst-apotheke
https://munich.mfa.gov.ua/
https://padlet.com/bbs_germersheim/regal
https://www.peopleatventure.de/ebook-fuer-azubis
https://de.indeed.com/Praktikum-Schüler-Jobs-in-Neuss?vjk=6837c9c452516587

So for the 403 status code, I'm undecided whether we should really put this into the "warning" category or keep the current solution of giving the user the option to re-check or ignore the link at any given time if they notice that they are in fact working...

@Gaston69 It appears that this is a problem of the underlying library and not us.
The links which are indeed valid are not correctly recognized as such.
So probably I will open an upstream PR for linkcheck which means we will no longer have to create a separate warning category.

For reference, see the following issues in the linkcheck library:

https://github.com/DjangoAdminHackers/django-linkcheck/issues/98
https://github.com/DjangoAdminHackers/django-linkcheck/issues/128

After these two have been resolved, the only case that remains is "403 Forbidden", but as I stated earlier, I think we should still leave these cases for the manual review instead of marking all those URLs as potentially valid.


Not find compatible versions for pod "FBSDKLoginKit"

Since I update to v3.0.0 I have this issue on iOs but works fine on Android,
CocoaPods could not find compatible versions for pod "FBSDKLoginKit":
  In snapshot (Podfile.lock):
    FBSDKLoginKit (= 4.39.1, = 5.5)

  In Podfile:
    flutter_facebook_login (from `.symlinks/plugins/flutter_facebook_login/ios`) was resolved to 0.0.1, which depends on
      FBSDKLoginKit (~> 5.5)

Same issue

I'm edit file Podfile.lock to below

FBSDKCoreKit (5.7.0):

FBSDKCoreKit/Basics (= 5.7.0)
FBSDKCoreKit/Core (= 5.7.0)

FBSDKCoreKit/Basics (5.7.0)
FBSDKCoreKit/Core (5.7.0):

FBSDKCoreKit/Basics

FBSDKLoginKit (5.7.0):

FBSDKLoginKit/Login (= 5.7.0)

FBSDKLoginKit/Login (5.7.0):

FBSDKCoreKit (~> 5.0)

Then run
pod deintegrate
pod install,
It's worked for my project.

Increase target to 9 and delete Podfile.lock and run (flutter build IOS), will working fine

@hoc081098  the @mhd-barikhan  works perfectly, also I try the @tuanitpro but have some error te mhd was cleaner thanks guys

Increase target to 9 and delete Podfile.lock and run (flutter build IOS), will working fine

Hey I tried this solution but no luck. Here's what I get after this-
`Launching lib/main.dart on iPhone SE in debug mode...
Running pod install...
CocoaPods' output:
↳
Preparing
Analyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

Fetching external sources
-> Fetching podspec for `Flutter` from `Flutter`
-> Fetching podspec for `cloud_firestore` from `.symlinks/plugins/cloud_firestore/ios`
-> Fetching podspec for `cloud_firestore_web` from `.symlinks/plugins/cloud_firestore_web/ios`
-> Fetching podspec for `firebase_auth` from `.symlinks/plugins/firebase_auth/ios`
-> Fetching podspec for `firebase_auth_web` from `.symlinks/plugins/firebase_auth_web/ios`
-> Fetching podspec for `firebase_core` from `.symlinks/plugins/firebase_core/ios`
-> Fetching podspec for `firebase_core_web` from `.symlinks/plugins/firebase_core_web/ios`
-> Fetching podspec for `firebase_storage` from `.symlinks/plugins/firebase_storage/ios`
-> Fetching podspec for `flutter_facebook_login` from `.symlinks/plugins/flutter_facebook_login/ios`
-> Fetching podspec for `flutter_plugin_android_lifecycle` from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`
-> Fetching podspec for `geolocator` from `.symlinks/plugins/geolocator/ios`
-> Fetching podspec for `google_api_availability` from `.symlinks/plugins/google_api_availability/ios`
-> Fetching podspec for `google_maps_flutter` from `.symlinks/plugins/google_maps_flutter/ios`
-> Fetching podspec for `google_sign_in` from `.symlinks/plugins/google_sign_in/ios`
-> Fetching podspec for `google_sign_in_web` from `.symlinks/plugins/google_sign_in_web/ios`
-> Fetching podspec for `image_picker` from `.symlinks/plugins/image_picker/ios`
-> Fetching podspec for `location_permissions` from `.symlinks/plugins/location_permissions/ios`
-> Fetching podspec for `shared_preferences` from `.symlinks/plugins/shared_preferences/ios`
-> Fetching podspec for `shared_preferences_macos` from `.symlinks/plugins/shared_preferences_macos/ios`
-> Fetching podspec for `shared_preferences_web` from `.symlinks/plugins/shared_preferences_web/ios`
-> Fetching podspec for `url_launcher` from `.symlinks/plugins/url_launcher/ios`
-> Fetching podspec for `url_launcher_macos` from `.symlinks/plugins/url_launcher_macos/ios`
-> Fetching podspec for `url_launcher_web` from `.symlinks/plugins/url_launcher_web/ios`

Resolving dependencies of `Podfile`
  CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: all_pods_versions_0_3_5.txt exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/6.22.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.5/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.7/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.9/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.3/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.4/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.5/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.6/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.7/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.9/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.10/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.11/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.12/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
  CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update

――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

### Command

```
/usr/local/bin/pod install --verbose
```

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?

### Stack

```
   CocoaPods : 1.9.1
        Ruby : ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
    RubyGems : 3.0.3
        Host : Mac OS X 10.15.4 (19E266)
       Xcode : 11.4 (11E146)
         Git : git version 2.23.0
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
Repositories : trunk - CDN - https://cdn.cocoapods.org/
```

### Plugins

```
cocoapods-deintegrate : 1.0.4
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.1.0
cocoapods-trunk       : 1.4.1
cocoapods-try         : 1.1.0
```

### Podfile

```ruby
# Uncomment this line to define a global platform for your project
platform :ios, '10.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def parse_KV_file(file, separator='=')
  file_abs_path = File.expand_path(file)
  if !File.exists? file_abs_path
    return [];
  end
  generated_key_values = {}
  skip_line_start_symbols = ["#", "/"]
  File.foreach(file_abs_path) do |line|
    next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
    plugin = line.split(pattern=separator)
    if plugin.length == 2
      podname = plugin[0].strip()
      path = plugin[1].strip()
      podpath = File.expand_path("#{path}", file_abs_path)
      generated_key_values[podname] = podpath
    else
      puts "Invalid plugin specification: #{line}"
    end
  end
  generated_key_values
end

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  # Flutter Pod

  copied_flutter_dir = File.join(__dir__, 'Flutter')
  copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
  copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
  unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
    # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
    # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
    # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.

    generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
    unless File.exist?(generated_xcode_build_settings_path)
      raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
    end
    generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
    cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];

    unless File.exist?(copied_framework_path)
      FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
    end
    unless File.exist?(copied_podspec_path)
      FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
    end
  end

  # Keep pod path relative so it can be checked into Podfile.lock.
  pod 'Flutter', :path => 'Flutter'

  # Plugin Pods

  # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
  # referring to absolute paths on developers' machines.
  system('rm -rf .symlinks')
  system('mkdir -p .symlinks/plugins')
  plugin_pods = parse_KV_file('../.flutter-plugins')
  plugin_pods.each do |name, path|
    symlink = File.join('.symlinks', 'plugins', name)
    File.symlink(path, symlink)
    pod name, :path => File.join(symlink, 'ios')
  end
end

# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
install! 'cocoapods', :disable_input_output_paths => true

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end
```

### Error

```
JSON::ParserError - 767: unexpected token at ''
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/json/common.rb:156:in `parse'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/json/common.rb:156:in `parse'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification/json.rb:61:in `from_json'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification.rb:742:in `from_string'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification.rb:716:in `from_file'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/source.rb:186:in `specification'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver/lazy_specification.rb:37:in `specification'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver/lazy_specification.rb:29:in `subspec_by_name'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:362:in `block in specifications_for_dependency'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:362:in `map'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:362:in `specifications_for_dependency'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:165:in `search_for'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:274:in `block in sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:267:in `each'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:267:in `sort_by'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:267:in `sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:53:in `block in sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:70:in `with_no_such_dependency_error_handling'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:52:in `sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:746:in `require_nested_dependencies_for'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:729:in `activate_new_spec'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:686:in `attempt_to_activate'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:254:in `process_topmost_state'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:94:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/installer/analyzer.rb:1065:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/installer/analyzer.rb:1063:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/installer.rb:410:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/installer.rb:235:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/installer.rb:234:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/installer.rb:156:in `install!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'
```

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

[!] Oh no, an error occurred.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=767%3A+unexpected+token+at+%27%27&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

Don't forget to anonymize any private data!

Looking for related issues on cocoapods/cocoapods...
 - Error during pod install: Encountered an unknown error (783: unexpected token at
   https://github.com/CocoaPods/CocoaPods/issues/9672 [open] [53 comments]
   8 hours ago

 - Pod install results in JSON::ParserError - 767. Trying to install pod 'Firebase/Firestore'
   https://github.com/CocoaPods/CocoaPods/issues/9694 [closed] [4 comments]
   a week ago

 - pod install      =======>Error
   https://github.com/CocoaPods/CocoaPods/issues/9708 [closed] [1 comment]
   5 days ago

and 7 more at:
https://github.com/cocoapods/cocoapods/search?q=767%3A%20unexpected%20token%20at%20%27%27&type=Issues&utf8=✓

Error running pod install
Error launching application on iPhone SE.
`

Increase target to 9 and delete Podfile.lock and run (flutter build IOS), will working fine

or simple uncomment the platform :ios, '9.0' by removing # from PodFile

I'm edit file Podfile.lock to below

FBSDKCoreKit (5.7.0):

FBSDKCoreKit/Basics (= 5.7.0)
FBSDKCoreKit/Core (= 5.7.0)

FBSDKCoreKit/Basics (5.7.0)

FBSDKCoreKit/Core (5.7.0):

FBSDKCoreKit/Basics

FBSDKLoginKit (5.7.0):

FBSDKLoginKit/Login (= 5.7.0)

FBSDKLoginKit/Login (5.7.0):

FBSDKCoreKit (~> 5.0)

Then run
pod deintegrate
pod install,
It's worked for my project.

After hours of searching, I came across to your answer. Worked like a charm! Thanks

Using pod update react-native-fbsdk instead of pod install it's the simplest solution


Vogen 3.0.21 -> 3.0.22 - Compilation Error on Custom Equality

Describe the bug
We have a Value Object that implements its own Equals and GetHashCode and it fails to compile when upgrading from 3.0.21 -> 3.0.22
Steps to reproduce
[ValueObject<string>(Conversions.Default | Conversions.NewtonsoftJson)]
public readonly partial record struct AttributeId
{
    public readonly bool Equals(AttributeId other)
    {
        // custom code
        return Value == other.Value;
    }

    public override int GetHashCode()
    {
        // custom code
        return 0;
    }
}

Error message:

Expected behaviour
For a patch version release, I would not expect this kind of breakage.

Apologies @cmeyertons - I completely missed this scenario. I'll fix ASAP.

The 2nd beta is there now on NuGet: https://www.nuget.org/packages/Vogen/3.0.23-beta.2

Apologies @cmeyertons - I completely missed this scenario. I'll fix ASAP.

No worries at all! Appreciate the quick fix, no rush on my end. Just like to stay up-to-date

Sorry @cmeyertons - the comment above was meant for another issue.
I'm taking a look at this issue now. Previously, for records, GetHashCode and Equals were not generated because this was auto-generated as part of the record.
But there was a feature request to support case-insensitive comparison and as part of that, I made the change to bring records more in line with classes and structs.
It seems reasonable to allow users to provide their own GetHashCode, so the change I just made skips the generation of this.
Regarding Equals:
May I ask why you override Equals?  The latest version of Vogen now generates Equals for everything, including records (hence your issue). In addition, it now generates an Equals that takes an IEqualityComparer<T> where T is the underlying type.
This causes a problem for Vogen if users have supplied their own Equals method(s). It could check for user supplied instances, but I originally imagined that equality would be something that wouldn't require an overload from the user (aside from case-insensitivity which has now been done).
I'm wondering, before I start the work on checking for overloaded Equals methods (and probably the == and != operators too (😱 ) - if the generated Equals that takes an IEqualityComparer is enough of an extension point for users.

Thanks for the report @cmeyertons - this is now fixed in 3.0.23 - apologies for the mess up. I've documented what can be overridden here: https://github.com/SteveDunn/Vogen/wiki/Overriding-methods


remove unnecessary Integer.valueOf() in ShirtStringToIntegerConverter

[Please describe here what your change is about]

Optimized convertToEntityAttribute method by removing redundant Integer.valueOf() call.
The dbData parameter is already an Integer, making this conversion unnecessary.

This is my first contribution to this project. Please let me know if there's anything I need to improve or if you need any additional information. I'm open to feedback and eager to learn. Thank you.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license
and can be relicensed under the terms of the LGPL v2.1 license in the future at the maintainers' discretion.
For more information on licensing, please check here.

Thanks


'react-scripts' is not recognized as an internal or external command, operable program or batch file.

On Windows 10, when I try yarn start, I get the following error:
$ yarn start
yarn run v1.17.3
$ react-scripts start
'react-scripts' is not recognized as an internal or external command,
operable program or batch file.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I've looked through other tickets that reference a similar error, however have yet to find a solution that works.
I've run npm cache clean --force, and I've verified the .bin directory exists in node_modules.
node v12.9.1
npm v6.11.2
create-react-app v3.1.1

The node_modules/.bin directory exists and there's a react-scripts.cmd in there?


Request to be an Reviewer of Volcano community

I'm requesting to be an reviewer of Volcano community.
My major contributions are scheduling feature development, replying and solving issue, and CVE&bug fix. I have participated in fixing 4 issues and reviewed 15 PRs. The detailed contributions are as follows:
Features：
add action/plugin registration and loading log #2477
Add podTopologySpread plugin #2487
abstract Bind() param to kubernetes.Interface #2869
Add featuregates for volcano capabilities #2989
make adpative percentage nodes to find be consistent with kube-scheduler #3011
Add reSync task callback #3092
Bug Fix:
Ensure deletion of pods is handled #2784
fix PodToplogySpread plugin violates maxSkew #2929
remove node out of sync state #2998
Fix multi volcano scheduler doc error #3172
fix job CRD metadata.annotations: Too long error #3197
fix queue update validation err when status.allocated empty #3206
queue realcapability change to min dimension of queue capability and … #3219
CVE fix
CVE-2023-2253: Bump github.com/docker/distribution to v2.8.2+incompatible #3192

Monokaix is active and passionate in contributing volcano features and doing great in LFX term 3 project as well.
Looking forwarding to make more contribution:)

+1

+1
Thanks for your contributions.

+1

/close


Timestamps are invalid and are not correctly validated

Force the timestamps to be an integer to validate token dates correctly.
This could be an int() or javaCast() as a solution.

@jcberquist According to RFC7519 they should be of the type NumericDate.
Right now when encoding a JWT with the jwt.encode() method, it is not setting the dates correctly, so the JWT is not validating for some services that are strict about it.
My quick fix was to surround the encodingUtils.convertDateToUnixTimestamp() call on line 58 with val(().