has_helpers 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (748) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +38 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +10 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.tekton/Chart.yaml +14 -0
  8. data/.tekton/templates/pipelinerun.yaml +44 -0
  9. data/.tekton/values-main.yaml +53 -0
  10. data/.tekton/values-pr.yaml +40 -0
  11. data/.tekton/values.yaml +17 -0
  12. data/.tool-versions +1 -0
  13. data/CHANGELOG.md +204 -0
  14. data/Gemfile +25 -0
  15. data/README.md +76 -0
  16. data/Rakefile +46 -0
  17. data/app/api/has_helpers/rack_api.rb +116 -0
  18. data/app/api/has_helpers/search_api.rb +173 -0
  19. data/app/assets/stylesheets/has_helpers/base.scss +5 -0
  20. data/app/assets/stylesheets/has_helpers/color_palette.scss +33 -0
  21. data/app/assets/stylesheets/has_helpers/color_palettes/default.scss +11 -0
  22. data/app/assets/stylesheets/has_helpers/components/dataset.scss +43 -0
  23. data/app/assets/stylesheets/has_helpers/mixins.scss +149 -0
  24. data/app/commands/has_helpers/cards/available_cards_command.rb +98 -0
  25. data/app/commands/has_helpers/cards/card_data_command.rb +1062 -0
  26. data/app/commands/reports/base_options.rb +79 -0
  27. data/app/commands/reports/belongs_to_options.rb +178 -0
  28. data/app/commands/reports/constant_options.rb +66 -0
  29. data/app/commands/reports/external_graphql_client.rb +116 -0
  30. data/app/commands/reports/fill_dates.rb +65 -0
  31. data/app/commands/reports/filter_option_generator.rb +186 -0
  32. data/app/commands/reports/generator.rb +310 -0
  33. data/app/commands/reports/has_many_options.rb +105 -0
  34. data/app/commands/reports/importer.rb +132 -0
  35. data/app/commands/reports/nested_attribute_options.rb +134 -0
  36. data/app/constants/color.rb +9 -0
  37. data/app/constants/file_format.rb +12 -0
  38. data/app/constants/has_helpers/cards/card_custom_field.rb +12 -0
  39. data/app/constants/has_helpers/cards/card_data_type.rb +11 -0
  40. data/app/constants/has_helpers/cards/card_identifier.rb +10 -0
  41. data/app/constants/has_helpers/cards/card_layout_type.rb +11 -0
  42. data/app/constants/has_helpers/cards/card_variant_type.rb +12 -0
  43. data/app/constants/has_helpers/link_type.rb +10 -0
  44. data/app/constants/has_helpers/notification_alert_status.rb +14 -0
  45. data/app/constants/has_helpers/notification_alert_type.rb +10 -0
  46. data/app/constants/has_helpers/operation.rb +11 -0
  47. data/app/constants/has_helpers/resource_type.rb +25 -0
  48. data/app/constants/icon.rb +22 -0
  49. data/app/constants/logical_operator.rb +7 -0
  50. data/app/constants/option.rb +10 -0
  51. data/app/constants/time_zone.rb +12 -0
  52. data/app/constructors/has_helpers/base_constructor.rb +62 -0
  53. data/app/controllers/concerns/has_helpers/service_trust/authenticated_as_service.rb +51 -0
  54. data/app/controllers/concerns/has_helpers/service_trust/graphql_authentication.rb +57 -0
  55. data/app/controllers/has_helpers/controller.rb +63 -0
  56. data/app/controllers/has_helpers/factory_controller.rb +261 -0
  57. data/app/controllers/has_helpers/graphql_extensions.rb +83 -0
  58. data/app/controllers/has_helpers/health_check_controller.rb +46 -0
  59. data/app/controllers/has_helpers/search_extensions.rb +92 -0
  60. data/app/controllers/has_helpers/service_trust/jwks_controller.rb +20 -0
  61. data/app/controllers/has_helpers/xlsx_export.rb +115 -0
  62. data/app/controllers/search_extensions.rb +5 -0
  63. data/app/graphql/has_helpers/base_type.rb +13 -0
  64. data/app/graphql/has_helpers/base_union.rb +9 -0
  65. data/app/graphql/has_helpers/enums/resource_enum.rb +24 -0
  66. data/app/graphql/has_helpers/middleware/application_access.rb +26 -0
  67. data/app/graphql/has_helpers/mutations/base.rb +27 -0
  68. data/app/graphql/has_helpers/mutations/external_data_sync.rb +72 -0
  69. data/app/graphql/has_helpers/mutations/mark_individual_alert_read.rb +31 -0
  70. data/app/graphql/has_helpers/mutations/mark_notifications_read.rb +50 -0
  71. data/app/graphql/has_helpers/mutations/toggle_favorite.rb +39 -0
  72. data/app/graphql/has_helpers/resolvers/app_nav.rb +107 -0
  73. data/app/graphql/has_helpers/resolvers/base.rb +27 -0
  74. data/app/graphql/has_helpers/resolvers/cards/available_cards.rb +31 -0
  75. data/app/graphql/has_helpers/resolvers/cards/card_data.rb +74 -0
  76. data/app/graphql/has_helpers/resolvers/cards/hover_card_data.rb +153 -0
  77. data/app/graphql/has_helpers/resolvers/favorite.rb +62 -0
  78. data/app/graphql/has_helpers/resolvers/internal/roles.rb +54 -0
  79. data/app/graphql/has_helpers/resolvers/is_favorite.rb +24 -0
  80. data/app/graphql/has_helpers/resolvers/list_notification_alerts.rb +47 -0
  81. data/app/graphql/has_helpers/resolvers/lookup.rb +36 -0
  82. data/app/graphql/has_helpers/resolvers/recently_viewed.rb +54 -0
  83. data/app/graphql/has_helpers/resolvers/resource_tab.rb +22 -0
  84. data/app/graphql/has_helpers/resolvers/search.rb +18 -0
  85. data/app/graphql/has_helpers/resolvers/search_query.rb +38 -0
  86. data/app/graphql/has_helpers/resolvers/user_application_order.rb +35 -0
  87. data/app/graphql/has_helpers/resources/organization_option_resource.rb +28 -0
  88. data/app/graphql/has_helpers/resources/organization_resource_resource.rb +18 -0
  89. data/app/graphql/has_helpers/resources/resource_group_resource.rb +10 -0
  90. data/app/graphql/has_helpers/resources/resource_resource.rb +21 -0
  91. data/app/graphql/has_helpers/resources/user_role_resource.rb +9 -0
  92. data/app/graphql/has_helpers/types/application_order_type.rb +18 -0
  93. data/app/graphql/has_helpers/types/cards/available_card_type.rb +20 -0
  94. data/app/graphql/has_helpers/types/cards/card_badge_type.rb +12 -0
  95. data/app/graphql/has_helpers/types/cards/card_config_type.rb +18 -0
  96. data/app/graphql/has_helpers/types/cards/card_data_type.rb +13 -0
  97. data/app/graphql/has_helpers/types/cards/card_entry_field_type.rb +21 -0
  98. data/app/graphql/has_helpers/types/cards/card_entry_type.rb +12 -0
  99. data/app/graphql/has_helpers/types/cards/card_field_config_type.rb +17 -0
  100. data/app/graphql/has_helpers/types/layouts/app_nav/link_section_type.rb +17 -0
  101. data/app/graphql/has_helpers/types/layouts/app_nav/link_type.rb +20 -0
  102. data/app/graphql/has_helpers/types/layouts/app_nav/sub_link_type.rb +17 -0
  103. data/app/graphql/has_helpers/types/layouts/app_nav/type.rb +16 -0
  104. data/app/graphql/has_helpers/types/lookup.rb +16 -0
  105. data/app/graphql/has_helpers/types/resource_tab/type.rb +15 -0
  106. data/app/graphql/has_helpers/types/role_type.rb +13 -0
  107. data/app/graphql/has_helpers/types/search/detail_badge_type.rb +15 -0
  108. data/app/graphql/has_helpers/types/search/detail_item_type.rb +14 -0
  109. data/app/graphql/has_helpers/types/search/detail_type.rb +16 -0
  110. data/app/graphql/has_helpers/types/search/filter_operation_enum.rb +19 -0
  111. data/app/graphql/has_helpers/types/search/input_type.rb +16 -0
  112. data/app/graphql/has_helpers/types/search/result_type.rb +72 -0
  113. data/app/graphql/has_helpers/types/search/search_filter_input_type.rb +17 -0
  114. data/app/graphql/has_helpers/types/search/type.rb +17 -0
  115. data/app/importers/has_helpers/cards/importer.rb +1223 -0
  116. data/app/lib/has_helpers/application_helper.rb +21 -0
  117. data/app/lib/has_helpers/dn/processor.rb +55 -0
  118. data/app/lib/has_helpers/dn/refresh.rb +13 -0
  119. data/app/lib/has_helpers/dn/utils/backfill_utils.rb +80 -0
  120. data/app/lib/has_helpers/dn/utils/query_utils.rb +216 -0
  121. data/app/lib/has_helpers/feature.rb +88 -0
  122. data/app/lib/has_helpers/hq_exception.rb +18 -0
  123. data/app/lib/has_helpers/index.rb +890 -0
  124. data/app/lib/has_helpers/organization_merge.rb +128 -0
  125. data/app/lib/has_helpers/query/elasticsearch.rb +20 -0
  126. data/app/lib/has_helpers/query/provider.rb +105 -0
  127. data/app/lib/has_helpers/query/sql.rb +133 -0
  128. data/app/lib/has_helpers/query.rb +14 -0
  129. data/app/lib/has_helpers/search/elasticsearch.rb +41 -0
  130. data/app/lib/has_helpers/search/elasticsearch_shared.rb +70 -0
  131. data/app/lib/has_helpers/search/provider.rb +149 -0
  132. data/app/lib/has_helpers/search/search_utils.rb +74 -0
  133. data/app/lib/has_helpers/search/sql_search.rb +219 -0
  134. data/app/lib/has_helpers/search.rb +46 -0
  135. data/app/models/ability.rb +233 -0
  136. data/app/models/has_helpers/application.rb +47 -0
  137. data/app/models/has_helpers/application_record.rb +7 -0
  138. data/app/models/has_helpers/cards/card_builder/base.rb +74 -0
  139. data/app/models/has_helpers/cards/card_builder/card_definition_builder.rb +486 -0
  140. data/app/models/has_helpers/cards/card_builder/definition_context.rb +82 -0
  141. data/app/models/has_helpers/cards/card_builder/field_builder.rb +142 -0
  142. data/app/models/has_helpers/cards/card_builder/resource_builder.rb +34 -0
  143. data/app/models/has_helpers/cards/card_definition.rb +41 -0
  144. data/app/models/has_helpers/cards/card_definition_resource.rb +19 -0
  145. data/app/models/has_helpers/cards/card_field.rb +39 -0
  146. data/app/models/has_helpers/cards/registry.rb +115 -0
  147. data/app/models/has_helpers/cards/role_card_field.rb +28 -0
  148. data/app/models/has_helpers/cards/role_resource_card.rb +41 -0
  149. data/app/models/has_helpers/dn_utils.rb +61 -0
  150. data/app/models/has_helpers/favorite.rb +20 -0
  151. data/app/models/has_helpers/master_record.rb +18 -0
  152. data/app/models/has_helpers/notification_alert.rb +52 -0
  153. data/app/models/has_helpers/organization.rb +16 -0
  154. data/app/models/has_helpers/organization_link.rb +92 -0
  155. data/app/models/has_helpers/organization_methods.rb +62 -0
  156. data/app/models/has_helpers/organization_option.rb +31 -0
  157. data/app/models/has_helpers/organization_resource.rb +45 -0
  158. data/app/models/has_helpers/pending_db_operation.rb +31 -0
  159. data/app/models/has_helpers/recently_viewed.rb +34 -0
  160. data/app/models/has_helpers/reindex_queue.rb +43 -0
  161. data/app/models/has_helpers/resource.rb +38 -0
  162. data/app/models/has_helpers/resource_group.rb +15 -0
  163. data/app/models/has_helpers/restriction.rb +15 -0
  164. data/app/models/has_helpers/restriction_operation.rb +13 -0
  165. data/app/models/has_helpers/role.rb +20 -0
  166. data/app/models/has_helpers/service_trust/audit_log.rb +20 -0
  167. data/app/models/has_helpers/service_trust/key.rb +56 -0
  168. data/app/models/has_helpers/stat.rb +13 -0
  169. data/app/models/has_helpers/user.rb +18 -0
  170. data/app/models/has_helpers/user_methods.rb +184 -0
  171. data/app/models/has_helpers/user_organization.rb +33 -0
  172. data/app/models/has_helpers/user_role.rb +27 -0
  173. data/app/models/has_helpers/user_session.rb +19 -0
  174. data/app/presenters/has_helpers/barcode_base_presenter.rb +113 -0
  175. data/app/presenters/has_helpers/base_presenter.rb +100 -0
  176. data/app/presenters/has_helpers/cacheable_item.rb +28 -0
  177. data/app/presenters/has_helpers/item_presenter.rb +52 -0
  178. data/app/presenters/has_helpers/items_presenter.rb +33 -0
  179. data/app/presenters/has_helpers/resource/action_presenter.rb +8 -0
  180. data/app/presenters/has_helpers/resource/cell_presenter.rb +52 -0
  181. data/app/presenters/has_helpers/resource/email_presenter.rb +34 -0
  182. data/app/presenters/has_helpers/resource/form_presenter.rb +76 -0
  183. data/app/presenters/has_helpers/resource/info_collection_presenter.rb +33 -0
  184. data/app/presenters/has_helpers/resource/info_presenter.rb +34 -0
  185. data/app/presenters/has_helpers/resource/list_presenter.rb +120 -0
  186. data/app/presenters/has_helpers/resource/note_presenter.rb +14 -0
  187. data/app/presenters/has_helpers/resource/row_presenter.rb +25 -0
  188. data/app/presenters/has_helpers/resource/tag_presenter.rb +31 -0
  189. data/app/presenters/has_helpers/search_presenter.rb +230 -0
  190. data/app/triggers/has_helpers/erase_denormalized_belongs_to_column_trigger.rb +85 -0
  191. data/app/triggers/has_helpers/limit_favorites.rb +97 -0
  192. data/app/utils/has_helpers/redis_configurable.rb +79 -0
  193. data/app/utils/has_helpers/sync_utils.rb +234 -0
  194. data/app/views/has_helpers/actions/_action.html.erb +31 -0
  195. data/app/views/has_helpers/alerts/_alert.html.erb +3 -0
  196. data/app/views/has_helpers/barcodes.html.erb +36 -0
  197. data/app/views/has_helpers/containers/_container.html.erb +3 -0
  198. data/app/views/has_helpers/email_notifier/system.html.erb +8 -0
  199. data/app/views/has_helpers/email_notifier/system.text.erb +7 -0
  200. data/app/views/has_helpers/enumerables/_enumerable.html.erb +1 -0
  201. data/app/views/has_helpers/icons/_icon.html.erb +1 -0
  202. data/app/views/has_helpers/render_objects/_render_object.html.erb +1 -0
  203. data/app/views/has_helpers/services/_service.html.erb +1 -0
  204. data/app/views/has_helpers/text_nodes/_text_node.html.erb +4 -0
  205. data/app/views/has_helpers/ui_attributes/_html_attrs.html.erb +1 -0
  206. data/app/workers/elasticsearch_process_queue.rb +11 -0
  207. data/app/workers/elasticsearch_reindex.rb +11 -0
  208. data/app/workers/elasticsearch_reindex_scheduler.rb +35 -0
  209. data/app/workers/good_job/configurable_backfill.rb +64 -0
  210. data/app/workers/good_job/cron_denormalization_stats_manager.rb +39 -0
  211. data/app/workers/good_job/denormalization_stats_worker.rb +57 -0
  212. data/app/workers/good_job/dn_update_worker.rb +30 -0
  213. data/app/workers/good_job/dn_worker.rb +47 -0
  214. data/app/workers/good_job/elasticsearch_old_index_cleaner_worker.rb +113 -0
  215. data/app/workers/good_job/elasticsearch_on_finish_reindex.rb +26 -0
  216. data/app/workers/good_job/elasticsearch_process_batch.rb +78 -0
  217. data/app/workers/good_job/elasticsearch_process_change_logs_master_worker.rb +27 -0
  218. data/app/workers/good_job/elasticsearch_process_change_logs_worker.rb +155 -0
  219. data/app/workers/good_job/elasticsearch_process_queue.rb +50 -0
  220. data/app/workers/good_job/elasticsearch_reindex.rb +31 -0
  221. data/app/workers/has_helpers/cards/orphan_card_sweeper.rb +28 -0
  222. data/app/workers/has_helpers/db_operations/clean_stats_worker.rb +42 -0
  223. data/app/workers/has_helpers/db_operations/helper_worker.rb +131 -0
  224. data/app/workers/has_helpers/db_operations/main_worker.rb +164 -0
  225. data/app/workers/has_helpers/db_operations/operations.rb +134 -0
  226. data/app/workers/has_helpers/db_operations/update_operations_stats_resume_worker.rb +35 -0
  227. data/app/workers/has_helpers/default_worker.rb +17 -0
  228. data/app/workers/has_helpers/good_job/notification_alert_cleanup_worker.rb +43 -0
  229. data/app/workers/has_helpers/service_trust/audit_log_cleanup_worker.rb +19 -0
  230. data/app/workers/sidekiq/elasticsearch_old_index_cleaner_worker.rb +112 -0
  231. data/app/workers/sidekiq/elasticsearch_process_batch.rb +87 -0
  232. data/app/workers/sidekiq/elasticsearch_process_queue.rb +40 -0
  233. data/app/workers/sidekiq/elasticsearch_reindex.rb +53 -0
  234. data/config/initializers/action_view.rb +7 -0
  235. data/config/initializers/inflections.rb +24 -0
  236. data/config/initializers/marginalia.rb +8 -0
  237. data/config/initializers/mime_types.rb +6 -0
  238. data/config/initializers/opentelemetry.rb +12 -0
  239. data/config/initializers/redis_conf.rb +40 -0
  240. data/config/initializers/searchkick.rb +9 -0
  241. data/config/initializers/will_paginate.rb +39 -0
  242. data/config/redis.yml +12 -0
  243. data/config/routes.rb +27 -0
  244. data/config/service_trust_routes.rb +5 -0
  245. data/config.ru +9 -0
  246. data/db/migrate/20230127194725_create_organization_table.rb +25 -0
  247. data/db/migrate/20230127194726_validate_organization_foreign_keys.rb +7 -0
  248. data/db/migrate/20230206141413_create_security_models.rb +42 -0
  249. data/db/migrate/20230206141513_create_restriction_model.rb +20 -0
  250. data/db/migrate/20230206142613_add_security_indexes.rb +14 -0
  251. data/db/migrate/20230206143513_security_model_constants_seed.rb +8 -0
  252. data/db/migrate/20230206161513_add_organization_to_security_models.rb +13 -0
  253. data/db/migrate/20230209121019_create_search_group_models.rb +36 -0
  254. data/db/migrate/20230209122919_add_search_group_indexes.rb +21 -0
  255. data/db/migrate/20230209181832_add_search_group_resources_type_constraint_trigger.rb +61 -0
  256. data/db/migrate/20230313220337_create_table_user_sessions.rb +31 -0
  257. data/db/migrate/20230517141106_update_resource_types.rb +12 -0
  258. data/db/migrate/20230518194611_add_resources_contraints.rb +17 -0
  259. data/db/migrate/20230518194642_create_nested_resource_model.rb +21 -0
  260. data/db/migrate/20230518194645_validate_security_models_constraints.rb +23 -0
  261. data/db/migrate/20230608125037_add_inactive_field_to_user_sessions.rb +7 -0
  262. data/db/migrate/20230919191525_add_parent_id_to_resources.rb +8 -0
  263. data/db/migrate/20230919191535_validate_parent_id_fk_resources.rb +7 -0
  264. data/db/migrate/20230919210456_drop_nested_resources.rb +7 -0
  265. data/db/migrate/20231222135620_add_user_role.rb +19 -0
  266. data/db/migrate/20240108172021_create_favorites_table.rb +20 -0
  267. data/db/migrate/20240108190209_create_organization_link_table_if_doesnt_exists.rb +31 -0
  268. data/db/migrate/20240109211445_validate_fks_org_links.rb +9 -0
  269. data/db/migrate/20240110135440_create_recently_vieweds.rb +20 -0
  270. data/db/migrate/20240112185312_link_type_options_seed.rb +7 -0
  271. data/db/migrate/20240116173201_organization_link_resource_tab_constraints.rb +19 -0
  272. data/db/migrate/20240131160949_add_user_organizations_table.rb +32 -0
  273. data/db/migrate/20240212132519_add_organization_in_user_sessions.rb +13 -0
  274. data/db/migrate/20240227135052_add_user_organization_composite_fks.rb +32 -0
  275. data/db/migrate/20240312193501_update_organization_links.rb +11 -0
  276. data/db/migrate/20240426185902_add_user_organizations_current_organization_column.rb +12 -0
  277. data/db/migrate/20240429214601_add_primary_trigger.rb +10 -0
  278. data/db/migrate/20241112131819_add_json_file_format_seed.rb +7 -0
  279. data/db/migrate/20250520133417_create_restriction_operations.rb +18 -0
  280. data/db/migrate/20250520133420_validate_create_restriction_operations.rb +8 -0
  281. data/db/migrate/20250520140642_add_indexes_to_restrictions.rb +9 -0
  282. data/db/migrate/20250529130741_create_notification_alerts_table.rb +28 -0
  283. data/db/migrate/20250530223332_create_data_migrations_table.rb +19 -0
  284. data/db/migrate/20250605121622_seed_notification_alert_status.rb +7 -0
  285. data/db/migrate/20250605131439_seed_notification_alert_types.rb +7 -0
  286. data/db/migrate/20250606173128_update_notification_alert_length_constraint.rb +18 -0
  287. data/db/migrate/20250606174043_validate_notification_alert_length_constraints.rb +8 -0
  288. data/db/migrate/20250624183000_add_data_import_alert_type.rb +11 -0
  289. data/db/migrate/20250722183935_create_organization_options_table.rb +38 -0
  290. data/db/migrate/20250722192724_validate_organization_options_fks_and_constraints.rb +32 -0
  291. data/db/migrate/20250722192936_add_indexes_to_organization_options_table.rb +15 -0
  292. data/db/migrate/20250915132448_add_column_restrictions_hash.rb +7 -0
  293. data/db/migrate/20250917143211_add_column_permissions_hash.rb +7 -0
  294. data/db/migrate/20251001145950_add_trust_this_device.rb +7 -0
  295. data/db/migrate/20251021130835_add_backend_urls_to_applications_table.rb +13 -0
  296. data/db/migrate/20251021172715_validate_backend_urls_constraints_in_applications.rb +9 -0
  297. data/db/migrate/20251030200020_create_card_definitions.rb +23 -0
  298. data/db/migrate/20251030201012_create_card_definition_resources.rb +24 -0
  299. data/db/migrate/20251030201236_create_card_fields.rb +34 -0
  300. data/db/migrate/20251103194317_create_role_resource_cards.rb +37 -0
  301. data/db/migrate/20251103194426_create_role_card_fields.rb +34 -0
  302. data/db/migrate/20251107173218_validate_columns_from_cards.rb +17 -0
  303. data/db/migrate/20251111173212_add_column_application_array.rb +7 -0
  304. data/db/migrate/20251112203326_add_card_types.rb +10 -0
  305. data/db/migrate/20251115120000_add_virtual_cards_support.rb +28 -0
  306. data/db/migrate/20251202231256_add_org_scoped_fk_role_resource_cards_to_roles.rb +14 -0
  307. data/db/migrate/20260105134504_add_accessor_field_resource_type.rb +7 -0
  308. data/db/migrate/20260115123000_add_default_visibility_to_card_definitions.rb +9 -0
  309. data/db/migrate/20260120175037_is_new_admin.rb +9 -0
  310. data/db/migrate/20260122392008_add_stats_table.rb +17 -0
  311. data/db/migrate/20260414204718_add_index_to_stats_table.rb +10 -0
  312. data/db/migrate/20260509120000_create_service_trust_keys.rb +25 -0
  313. data/db/migrate/20260509120001_create_service_trust_audit_logs.rb +26 -0
  314. data/db/migrate/20260511120000_add_direction_to_service_trust_audit_logs.rb +17 -0
  315. data/db/migrate/20260511121000_remove_role_fk_from_role_resource_cards.rb +19 -0
  316. data/db/migrate/20260511121001_add_disabled_at_to_role_resource_cards.rb +10 -0
  317. data/db/migrate/20260605120100_seed_hover_card_options.rb +8 -0
  318. data/db/migrate/20260608120000_seed_badge_list_card_data_type.rb +7 -0
  319. data/db/migrate/20260727000000_add_two_factor_trust_id_to_user_sessions.rb +11 -0
  320. data/db/seeds.rb +14 -0
  321. data/docs/Elasticsearch.md +23 -0
  322. data/docs/Search_API.md +126 -0
  323. data/docs/cards_role_proxy.md +107 -0
  324. data/docs/factory_api.md +135 -0
  325. data/has-helpers-pr-289-pipeline.yaml +16 -0
  326. data/has-helpers-pr-298-pipeline.yaml +15 -0
  327. data/has_helpers.gemspec +68 -0
  328. data/lib/active_record/migration/active_migration_patch.rb +123 -0
  329. data/lib/generators/has_helpers/install/USAGE +8 -0
  330. data/lib/generators/has_helpers/install/install_generator.rb +22 -0
  331. data/lib/generators/has_helpers/install/templates/migrate/has_helpers_initial_setup.rb +26 -0
  332. data/lib/has_helpers/active_record/base.rb +50 -0
  333. data/lib/has_helpers/active_record/date_range.rb +228 -0
  334. data/lib/has_helpers/active_record/nested_resource.rb +58 -0
  335. data/lib/has_helpers/active_record/validation.rb +63 -0
  336. data/lib/has_helpers/active_record.rb +520 -0
  337. data/lib/has_helpers/app/command.rb +107 -0
  338. data/lib/has_helpers/app.rb +10 -0
  339. data/lib/has_helpers/assets_precompile_helper.rb +20 -0
  340. data/lib/has_helpers/attributes.rb +196 -0
  341. data/lib/has_helpers/aws.rb +67 -0
  342. data/lib/has_helpers/cards/cache.rb +49 -0
  343. data/lib/has_helpers/cards/config.rb +42 -0
  344. data/lib/has_helpers/cards/remote_role.rb +27 -0
  345. data/lib/has_helpers/cards/remote_roles.rb +75 -0
  346. data/lib/has_helpers/cards/roles.rb +55 -0
  347. data/lib/has_helpers/cards.rb +34 -0
  348. data/lib/has_helpers/concerns/hydrate_concern.rb +76 -0
  349. data/lib/has_helpers/concerns/importable_accessors.rb +25 -0
  350. data/lib/has_helpers/concerns/restrictions_parseable.rb +51 -0
  351. data/lib/has_helpers/config.rb +11 -0
  352. data/lib/has_helpers/constant.rb +578 -0
  353. data/lib/has_helpers/constraints.rb +10 -0
  354. data/lib/has_helpers/core_ext/array.rb +28 -0
  355. data/lib/has_helpers/core_ext/date/infinity.rb +25 -0
  356. data/lib/has_helpers/core_ext/date.rb +39 -0
  357. data/lib/has_helpers/core_ext/enumerable.rb +20 -0
  358. data/lib/has_helpers/core_ext/false_class.rb +14 -0
  359. data/lib/has_helpers/core_ext/float.rb +18 -0
  360. data/lib/has_helpers/core_ext/hash.rb +71 -0
  361. data/lib/has_helpers/core_ext/integer.rb +18 -0
  362. data/lib/has_helpers/core_ext/nil_class.rb +30 -0
  363. data/lib/has_helpers/core_ext/object.rb +60 -0
  364. data/lib/has_helpers/core_ext/proc.rb +16 -0
  365. data/lib/has_helpers/core_ext/string.rb +81 -0
  366. data/lib/has_helpers/core_ext/symbol.rb +17 -0
  367. data/lib/has_helpers/core_ext/true_class.rb +14 -0
  368. data/lib/has_helpers/cursor.rb +46 -0
  369. data/lib/has_helpers/data_migration/base.rb +293 -0
  370. data/lib/has_helpers/data_migration/large_worker.rb +20 -0
  371. data/lib/has_helpers/data_migration/master_worker.rb +33 -0
  372. data/lib/has_helpers/data_migration/migrator.rb +83 -0
  373. data/lib/has_helpers/data_migration/model.rb +18 -0
  374. data/lib/has_helpers/data_migration/small_worker.rb +20 -0
  375. data/lib/has_helpers/data_migration.rb +8 -0
  376. data/lib/has_helpers/engine.rb +47 -0
  377. data/lib/has_helpers/extensions.rb +17 -0
  378. data/lib/has_helpers/factory_api.rb +47 -0
  379. data/lib/has_helpers/factory_scenario/definition.rb +33 -0
  380. data/lib/has_helpers/factory_scenario/dsl.rb +80 -0
  381. data/lib/has_helpers/factory_scenario/factory_bot_override.rb +53 -0
  382. data/lib/has_helpers/factory_scenario/registry.rb +31 -0
  383. data/lib/has_helpers/factory_scenario/runner.rb +285 -0
  384. data/lib/has_helpers/factory_scenario.rb +27 -0
  385. data/lib/has_helpers/fixed_expiration_time_cache_session_store.rb +20 -0
  386. data/lib/has_helpers/flattener/association.rb +140 -0
  387. data/lib/has_helpers/flattener/attribute.rb +42 -0
  388. data/lib/has_helpers/flattener/base.rb +428 -0
  389. data/lib/has_helpers/flattener/column/types.rb +71 -0
  390. data/lib/has_helpers/flattener/column.rb +97 -0
  391. data/lib/has_helpers/flattener/pivot.rb +49 -0
  392. data/lib/has_helpers/flattener/reset.rb +33 -0
  393. data/lib/has_helpers/flattener/resource.rb +114 -0
  394. data/lib/has_helpers/flattener/resource_generator.rb +21 -0
  395. data/lib/has_helpers/flattener/utils.rb +14 -0
  396. data/lib/has_helpers/flattener.rb +53 -0
  397. data/lib/has_helpers/hash_accessors.rb +62 -0
  398. data/lib/has_helpers/helpers/application.rb +291 -0
  399. data/lib/has_helpers/index/config.rb +15 -0
  400. data/lib/has_helpers/lazy_config.rb +61 -0
  401. data/lib/has_helpers/resource_importer.rb +260 -0
  402. data/lib/has_helpers/resources.rb +127 -0
  403. data/lib/has_helpers/rspec/constants.rb +61 -0
  404. data/lib/has_helpers/rspec/factories.rb +11 -0
  405. data/lib/has_helpers/rspec.rb +22 -0
  406. data/lib/has_helpers/sentry/graphql_trace.rb +37 -0
  407. data/lib/has_helpers/serializer.rb +41 -0
  408. data/lib/has_helpers/service_trust/audit.rb +45 -0
  409. data/lib/has_helpers/service_trust/authorization.rb +34 -0
  410. data/lib/has_helpers/service_trust/bearer_token.rb +23 -0
  411. data/lib/has_helpers/service_trust/capability.rb +32 -0
  412. data/lib/has_helpers/service_trust/client/response.rb +13 -0
  413. data/lib/has_helpers/service_trust/client/retry.rb +35 -0
  414. data/lib/has_helpers/service_trust/client.rb +128 -0
  415. data/lib/has_helpers/service_trust/configuration.rb +76 -0
  416. data/lib/has_helpers/service_trust/engine.rb +10 -0
  417. data/lib/has_helpers/service_trust/errors.rb +32 -0
  418. data/lib/has_helpers/service_trust/graphql/authorizable.rb +72 -0
  419. data/lib/has_helpers/service_trust/graphql_client.rb +54 -0
  420. data/lib/has_helpers/service_trust/jwks_client.rb +133 -0
  421. data/lib/has_helpers/service_trust/jwt_codec.rb +45 -0
  422. data/lib/has_helpers/service_trust/key_manager.rb +160 -0
  423. data/lib/has_helpers/service_trust/rate_limiter.rb +27 -0
  424. data/lib/has_helpers/service_trust/replay_cache.rb +26 -0
  425. data/lib/has_helpers/service_trust/signer.rb +47 -0
  426. data/lib/has_helpers/service_trust/test.rb +60 -0
  427. data/lib/has_helpers/service_trust/verifier.rb +85 -0
  428. data/lib/has_helpers/service_trust/verify_middleware.rb +55 -0
  429. data/lib/has_helpers/service_trust.rb +51 -0
  430. data/lib/has_helpers/test_helpers/factory_data/unit_addresses.rb +42 -0
  431. data/lib/has_helpers/test_helpers/factory_data/unit_advisors.rb +272 -0
  432. data/lib/has_helpers/test_helpers/factory_data/unit_emails.rb +37 -0
  433. data/lib/has_helpers/test_helpers/factory_data/unit_organizations.rb +48 -0
  434. data/lib/has_helpers/test_helpers/factory_data/unit_people.rb +34 -0
  435. data/lib/has_helpers/test_helpers/factory_data/unit_phones.rb +41 -0
  436. data/lib/has_helpers/test_helpers/factory_data/unit_states.rb +26 -0
  437. data/lib/has_helpers/test_helpers/factory_data/unit_webs.rb +31 -0
  438. data/lib/has_helpers/test_helpers/shoulda_helpers.rb +249 -0
  439. data/lib/has_helpers/ui_attributes.rb +39 -0
  440. data/lib/has_helpers/utils/action.rb +87 -0
  441. data/lib/has_helpers/utils/active_record_utils.rb +40 -0
  442. data/lib/has_helpers/utils/alert.rb +42 -0
  443. data/lib/has_helpers/utils/container.rb +46 -0
  444. data/lib/has_helpers/utils/dataset.rb +34 -0
  445. data/lib/has_helpers/utils/email_notifier.rb +15 -0
  446. data/lib/has_helpers/utils/icon.rb +66 -0
  447. data/lib/has_helpers/utils/input.rb +45 -0
  448. data/lib/has_helpers/utils/log_notifier.rb +79 -0
  449. data/lib/has_helpers/utils/render_object.rb +32 -0
  450. data/lib/has_helpers/utils/s3_utils.rb +37 -0
  451. data/lib/has_helpers/utils/service.rb +87 -0
  452. data/lib/has_helpers/utils/slack_conf.rb +31 -0
  453. data/lib/has_helpers/utils/slack_notifier.rb +42 -0
  454. data/lib/has_helpers/utils/text_node.rb +34 -0
  455. data/lib/has_helpers/utils/user_restrictions.rb +266 -0
  456. data/lib/has_helpers/utils.rb +19 -0
  457. data/lib/has_helpers/version.rb +6 -0
  458. data/lib/has_helpers/web_socket_publisher.rb +20 -0
  459. data/lib/has_helpers/webhook.rb +17 -0
  460. data/lib/has_helpers.rb +63 -0
  461. data/lib/hq/resource.rb +55 -0
  462. data/lib/hq/structure/inserts.rb +176 -0
  463. data/lib/hq/structure.rb +115 -0
  464. data/lib/tasks/has_helpers/service_trust.rake +39 -0
  465. data/script/rails +10 -0
  466. data/sorbet/config +5 -0
  467. data/sorbet/rbi/gems/actionpack.rbi +1361 -0
  468. data/sorbet/rbi/gems/activemodel.rbi +755 -0
  469. data/sorbet/rbi/gems/activerecord.rbi +4713 -0
  470. data/sorbet/rbi/gems/activesupport.rbi +1970 -0
  471. data/sorbet/rbi/gems/barby.rbi +129 -0
  472. data/sorbet/rbi/gems/better_errors.rbi +155 -0
  473. data/sorbet/rbi/gems/binding_of_caller.rbi +22 -0
  474. data/sorbet/rbi/gems/byebug.rbi +19 -0
  475. data/sorbet/rbi/gems/chronic.rbi +480 -0
  476. data/sorbet/rbi/gems/chunky_png.rbi +510 -0
  477. data/sorbet/rbi/gems/climate_control.rbi +45 -0
  478. data/sorbet/rbi/gems/coderay.rbi +91 -0
  479. data/sorbet/rbi/gems/concurrent-ruby.rbi +1587 -0
  480. data/sorbet/rbi/gems/debug_inspector.rbi +18 -0
  481. data/sorbet/rbi/gems/erubi.rbi +26 -0
  482. data/sorbet/rbi/gems/holidays.rbi +362 -0
  483. data/sorbet/rbi/gems/i18n.rbi +132 -0
  484. data/sorbet/rbi/gems/method_source.rbi +63 -0
  485. data/sorbet/rbi/gems/mime-types-data.rbi +16 -0
  486. data/sorbet/rbi/gems/mime-types.rbi +217 -0
  487. data/sorbet/rbi/gems/mimemagic.rbi +36 -0
  488. data/sorbet/rbi/gems/minitest.rbi +282 -0
  489. data/sorbet/rbi/gems/mustache.rbi +151 -0
  490. data/sorbet/rbi/gems/paperclip.rbi +644 -0
  491. data/sorbet/rbi/gems/parallel.rbi +81 -0
  492. data/sorbet/rbi/gems/parallel_tests.rbi +27 -0
  493. data/sorbet/rbi/gems/pry-rails.rbi +71 -0
  494. data/sorbet/rbi/gems/pry.rbi +1964 -0
  495. data/sorbet/rbi/gems/rack.rbi +228 -0
  496. data/sorbet/rbi/gems/railties.rbi +364 -0
  497. data/sorbet/rbi/gems/rspec-core.rbi +1704 -0
  498. data/sorbet/rbi/gems/rspec-expectations.rbi +389 -0
  499. data/sorbet/rbi/gems/rspec-support.rbi +206 -0
  500. data/sorbet/rbi/gems/rspec.rbi +14 -0
  501. data/sorbet/rbi/gems/spreadsheet_architect.rbi +10 -0
  502. data/sorbet/rbi/gems/sprockets.rbi +659 -0
  503. data/sorbet/rbi/gems/terrapin.rbi +115 -0
  504. data/sorbet/rbi/gems/testhq.rbi +14 -0
  505. data/sorbet/rbi/gems/thor.rbi +482 -0
  506. data/sorbet/rbi/gems/thread_safe.rbi +81 -0
  507. data/sorbet/rbi/gems/tzinfo.rbi +407 -0
  508. data/sorbet/rbi/gems/zeitwerk.rbi +131 -0
  509. data/sorbet/rbi/hidden-definitions/errors.txt +35111 -0
  510. data/sorbet/rbi/hidden-definitions/hidden.rbi +59974 -0
  511. data/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +13 -0
  512. data/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +855 -0
  513. data/sorbet/rbi/sorbet-typed/lib/actionview/all/actionview.rbi +314 -0
  514. data/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +423 -0
  515. data/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +17 -0
  516. data/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1415 -0
  517. data/sorbet/rbi/sorbet-typed/lib/activerecord/~>6.0.0/activerecord.rbi +475 -0
  518. data/sorbet/rbi/sorbet-typed/lib/activestorage/>=6.0.0/activestorage.rbi +19 -0
  519. data/sorbet/rbi/sorbet-typed/lib/activestorage/all/activestorage.rbi +173 -0
  520. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +23 -0
  521. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +625 -0
  522. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +8684 -0
  523. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
  524. data/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +25 -0
  525. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +254 -0
  526. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +4222 -0
  527. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +111 -0
  528. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +543 -0
  529. data/sorbet/rbi/todo.rbi +244 -0
  530. data/spec/commands/cards/available_cards_command_spec.rb +90 -0
  531. data/spec/commands/cards/card_data_command_spec.rb +1048 -0
  532. data/spec/constructors/has_helpers/base_constructor_spec.rb +49 -0
  533. data/spec/controllers/has_helpers/controller_spec.rb +71 -0
  534. data/spec/controllers/has_helpers/xlsx_export_spec.rb +96 -0
  535. data/spec/factories/advisors.rb +20 -0
  536. data/spec/factories/anonymous_cowards.rb +5 -0
  537. data/spec/factories/applications.rb +5 -0
  538. data/spec/factories/appointments.rb +6 -0
  539. data/spec/factories/attachment.rb +15 -0
  540. data/spec/factories/audits.rb +5 -0
  541. data/spec/factories/basic_schedules.rb +12 -0
  542. data/spec/factories/cards/card_definition_resources.rb +7 -0
  543. data/spec/factories/cards/card_definitions.rb +11 -0
  544. data/spec/factories/cards/card_fields.rb +22 -0
  545. data/spec/factories/cards/role_card_fields.rb +17 -0
  546. data/spec/factories/cards/role_resource_cards.rb +12 -0
  547. data/spec/factories/constant_definition.rb +7 -0
  548. data/spec/factories/contracts.rb +10 -0
  549. data/spec/factories/data_migration_models.rb +9 -0
  550. data/spec/factories/demographics.rb +22 -0
  551. data/spec/factories/events.rb +21 -0
  552. data/spec/factories/firms.rb +21 -0
  553. data/spec/factories/imports.rb +9 -0
  554. data/spec/factories/meetups.rb +13 -0
  555. data/spec/factories/organizations.rb +13 -0
  556. data/spec/factories/policies.rb +7 -0
  557. data/spec/factories/policy_notes.rb +9 -0
  558. data/spec/factories/read_only_values.rb +7 -0
  559. data/spec/factories/resources.rb +7 -0
  560. data/spec/factories/roles.rb +11 -0
  561. data/spec/factories/schedules.rb +13 -0
  562. data/spec/factories/shared/flattener/attributes.rb +10 -0
  563. data/spec/factories/shared/flattener/columns.rb +6 -0
  564. data/spec/factories/shared/flattener/resources.rb +5 -0
  565. data/spec/factories/templates.rb +12 -0
  566. data/spec/factories/user_organizations.rb +23 -0
  567. data/spec/factories/user_session.rb +11 -0
  568. data/spec/factories/users.rb +55 -0
  569. data/spec/fixtures/sample_config.yml +3 -0
  570. data/spec/graphql/has_helpers/mutations/external_data_sync_spec.rb +101 -0
  571. data/spec/graphql/has_helpers/resolvers/cards/available_cards_spec.rb +36 -0
  572. data/spec/graphql/has_helpers/resolvers/cards/card_data_spec.rb +42 -0
  573. data/spec/graphql/has_helpers/resolvers/cards/hover_card_data_spec.rb +59 -0
  574. data/spec/has_helpers/cards/cache_spec.rb +58 -0
  575. data/spec/has_helpers/cards/config_spec.rb +68 -0
  576. data/spec/has_helpers/cards/orphan_card_sweeper_spec.rb +97 -0
  577. data/spec/has_helpers/cards/remote_role_spec.rb +17 -0
  578. data/spec/has_helpers/cards/remote_roles_spec.rb +97 -0
  579. data/spec/has_helpers/cards/roles_spec.rb +52 -0
  580. data/spec/has_helpers/cards/smoke_spec.rb +168 -0
  581. data/spec/has_helpers/cards/support.rb +52 -0
  582. data/spec/has_helpers/resolvers/internal/roles_spec.rb +73 -0
  583. data/spec/has_helpers/service_trust/audit_log_cleanup_worker_spec.rb +33 -0
  584. data/spec/has_helpers/service_trust/audit_spec.rb +70 -0
  585. data/spec/has_helpers/service_trust/authenticated_as_service_spec.rb +65 -0
  586. data/spec/has_helpers/service_trust/authorization_spec.rb +37 -0
  587. data/spec/has_helpers/service_trust/capability_spec.rb +35 -0
  588. data/spec/has_helpers/service_trust/client_spec.rb +129 -0
  589. data/spec/has_helpers/service_trust/configuration_spec.rb +35 -0
  590. data/spec/has_helpers/service_trust/engine_spec.rb +13 -0
  591. data/spec/has_helpers/service_trust/errors_spec.rb +23 -0
  592. data/spec/has_helpers/service_trust/graphql_authentication_spec.rb +59 -0
  593. data/spec/has_helpers/service_trust/graphql_authorizable_spec.rb +91 -0
  594. data/spec/has_helpers/service_trust/graphql_client_spec.rb +47 -0
  595. data/spec/has_helpers/service_trust/jwks_client_spec.rb +85 -0
  596. data/spec/has_helpers/service_trust/jwks_controller_spec.rb +47 -0
  597. data/spec/has_helpers/service_trust/jwt_codec_spec.rb +30 -0
  598. data/spec/has_helpers/service_trust/key_manager_spec.rb +80 -0
  599. data/spec/has_helpers/service_trust/key_spec.rb +52 -0
  600. data/spec/has_helpers/service_trust/rake_tasks_spec.rb +58 -0
  601. data/spec/has_helpers/service_trust/rate_limiter_spec.rb +31 -0
  602. data/spec/has_helpers/service_trust/replay_cache_spec.rb +29 -0
  603. data/spec/has_helpers/service_trust/signer_verifier_spec.rb +159 -0
  604. data/spec/has_helpers/service_trust/smoke_spec.rb +216 -0
  605. data/spec/has_helpers/service_trust/support.rb +121 -0
  606. data/spec/has_helpers/service_trust/test_module_spec.rb +39 -0
  607. data/spec/has_helpers/service_trust/verify_middleware_spec.rb +82 -0
  608. data/spec/helpers/application_spec.rb +155 -0
  609. data/spec/importers/cards/importer_spec.rb +861 -0
  610. data/spec/internal/app/assets/config/manifest.js +0 -0
  611. data/spec/internal/app/constants/cat_egory.rb +33 -0
  612. data/spec/internal/app/constants/color.rb +19 -0
  613. data/spec/internal/app/constants/exclude_group_nil_constant.rb +5 -0
  614. data/spec/internal/app/constants/foo.rb +6 -0
  615. data/spec/internal/app/constants/fruit.rb +3 -0
  616. data/spec/internal/app/constants/generic_group_example.rb +12 -0
  617. data/spec/internal/app/constants/my_constant.rb +4 -0
  618. data/spec/internal/app/constants/product.rb +3 -0
  619. data/spec/internal/app/constants/shirt_size.rb +18 -0
  620. data/spec/internal/app/constants/simple_option.rb +14 -0
  621. data/spec/internal/app/constants/status.rb +5 -0
  622. data/spec/internal/app/constructors/organization_constructor.rb +4 -0
  623. data/spec/internal/app/controllers/application_controller.rb +27 -0
  624. data/spec/internal/app/controllers/search_extensions.rb +3 -0
  625. data/spec/internal/app/indices/advisor_index.rb +35 -0
  626. data/spec/internal/app/indices/contract_index.rb +52 -0
  627. data/spec/internal/app/indices/firm_index.rb +16 -0
  628. data/spec/internal/app/indices/policy_index.rb +20 -0
  629. data/spec/internal/app/models/advisor.rb +24 -0
  630. data/spec/internal/app/models/agency.rb +3 -0
  631. data/spec/internal/app/models/anonymous_coward.rb +5 -0
  632. data/spec/internal/app/models/another_event.rb +2 -0
  633. data/spec/internal/app/models/appointment.rb +3 -0
  634. data/spec/internal/app/models/attachment.rb +10 -0
  635. data/spec/internal/app/models/basic_schedule.rb +6 -0
  636. data/spec/internal/app/models/beneficiary.rb +6 -0
  637. data/spec/internal/app/models/client.rb +5 -0
  638. data/spec/internal/app/models/contract.rb +9 -0
  639. data/spec/internal/app/models/demographic.rb +4 -0
  640. data/spec/internal/app/models/division.rb +3 -0
  641. data/spec/internal/app/models/event.rb +10 -0
  642. data/spec/internal/app/models/event_template.rb +1 -0
  643. data/spec/internal/app/models/firm.rb +18 -0
  644. data/spec/internal/app/models/has_audits/audit.rb +15 -0
  645. data/spec/internal/app/models/import.rb +7 -0
  646. data/spec/internal/app/models/meetup.rb +8 -0
  647. data/spec/internal/app/models/organization.rb +17 -0
  648. data/spec/internal/app/models/organization_event.rb +5 -0
  649. data/spec/internal/app/models/policy.rb +16 -0
  650. data/spec/internal/app/models/policy_holder.rb +7 -0
  651. data/spec/internal/app/models/policy_note.rb +8 -0
  652. data/spec/internal/app/models/project.rb +3 -0
  653. data/spec/internal/app/models/read_only_value.rb +8 -0
  654. data/spec/internal/app/models/schedule.rb +12 -0
  655. data/spec/internal/app/models/template.rb +9 -0
  656. data/spec/internal/app/models/user.rb +31 -0
  657. data/spec/internal/app/models/user_organization.rb +17 -0
  658. data/spec/internal/app/views/has_lists/lists/_table.html.erb +1 -0
  659. data/spec/internal/config/database-standard.yml +24 -0
  660. data/spec/internal/config/initializers/resources.rb +19 -0
  661. data/spec/internal/config/routes.rb +19 -0
  662. data/spec/internal/config/storage.yml +3 -0
  663. data/spec/internal/db/good_job_schema.rb +141 -0
  664. data/spec/internal/db/schema.rb +334 -0
  665. data/spec/internal/log/.gitignore +1 -0
  666. data/spec/internal/public/favicon.ico +0 -0
  667. data/spec/lib/flattener/base_spec.rb +93 -0
  668. data/spec/lib/flattener/column/types_spec.rb +65 -0
  669. data/spec/lib/has_helpers/active_record/base_spec.rb +53 -0
  670. data/spec/lib/has_helpers/active_record/date_range_spec.rb +498 -0
  671. data/spec/lib/has_helpers/active_record/lookup_model_spec.rb +408 -0
  672. data/spec/lib/has_helpers/active_record/nested_resource_spec.rb +43 -0
  673. data/spec/lib/has_helpers/app/command/reports/generator_specs.rb +887 -0
  674. data/spec/lib/has_helpers/app/command_spec.rb +117 -0
  675. data/spec/lib/has_helpers/app/support/mocks/graphql_reports_helpers.rb +96 -0
  676. data/spec/lib/has_helpers/app/support/mocks/reports_api_mock.rb +47 -0
  677. data/spec/lib/has_helpers/attributes_spec.rb +220 -0
  678. data/spec/lib/has_helpers/aws_spec.rb +126 -0
  679. data/spec/lib/has_helpers/concerns/hydrate_concern_spec.rb +473 -0
  680. data/spec/lib/has_helpers/constant/definition_spec.rb +128 -0
  681. data/spec/lib/has_helpers/constant_spec.rb +432 -0
  682. data/spec/lib/has_helpers/core_ext/array_spec.rb +22 -0
  683. data/spec/lib/has_helpers/core_ext/date/infinity_spec.rb +67 -0
  684. data/spec/lib/has_helpers/core_ext/date_spec.rb +27 -0
  685. data/spec/lib/has_helpers/core_ext/false_class_spec.rb +7 -0
  686. data/spec/lib/has_helpers/core_ext/float_spec.rb +9 -0
  687. data/spec/lib/has_helpers/core_ext/hash_spec.rb +48 -0
  688. data/spec/lib/has_helpers/core_ext/integer_spec.rb +9 -0
  689. data/spec/lib/has_helpers/core_ext/nil_class_spec.rb +17 -0
  690. data/spec/lib/has_helpers/core_ext/object_spec.rb +54 -0
  691. data/spec/lib/has_helpers/core_ext/proc_spec.rb +24 -0
  692. data/spec/lib/has_helpers/core_ext/string_spec.rb +154 -0
  693. data/spec/lib/has_helpers/core_ext/true_class_spec.rb +7 -0
  694. data/spec/lib/has_helpers/data_migration/base_spec.rb +470 -0
  695. data/spec/lib/has_helpers/data_migration/large_worker_spec.rb +34 -0
  696. data/spec/lib/has_helpers/data_migration/master_worker_spec.rb +51 -0
  697. data/spec/lib/has_helpers/data_migration/migrator_spec.rb +113 -0
  698. data/spec/lib/has_helpers/data_migration/model_spec.rb +52 -0
  699. data/spec/lib/has_helpers/data_migration/small_worker_spec.rb +34 -0
  700. data/spec/lib/has_helpers/good_job/notification_alert_cleanup_worker_spec.rb +89 -0
  701. data/spec/lib/has_helpers/hash_accessors_spec.rb +66 -0
  702. data/spec/lib/has_helpers/index_spec.rb +442 -0
  703. data/spec/lib/has_helpers/lazy_config_spec.rb +31 -0
  704. data/spec/lib/has_helpers/organization_merge_spec.rb +88 -0
  705. data/spec/lib/has_helpers/resource_importer_spec.rb +119 -0
  706. data/spec/lib/has_helpers/rspec_spec.rb +16 -0
  707. data/spec/lib/has_helpers/search/provider_spec.rb +26 -0
  708. data/spec/lib/has_helpers/search/search_utils_spec.rb +134 -0
  709. data/spec/lib/has_helpers/sentry/graphql_trace_spec.rb +140 -0
  710. data/spec/lib/has_helpers/ui_attributes_spec.rb +42 -0
  711. data/spec/lib/has_helpers/utils/action_spec.rb +49 -0
  712. data/spec/lib/has_helpers/utils/alert_spec.rb +33 -0
  713. data/spec/lib/has_helpers/utils/dataset_spec.rb +10 -0
  714. data/spec/lib/has_helpers/utils/icon_spec.rb +23 -0
  715. data/spec/lib/has_helpers/utils/input_spec.rb +40 -0
  716. data/spec/lib/has_helpers/utils/log_notifier_spec.rb +25 -0
  717. data/spec/lib/has_helpers/utils/render_object_spec.rb +17 -0
  718. data/spec/lib/has_helpers/utils/s3_utils_spec.rb +78 -0
  719. data/spec/lib/has_helpers/utils/service_spec.rb +79 -0
  720. data/spec/lib/has_helpers/utils/slack_notifier_spec.rb +70 -0
  721. data/spec/lib/has_helpers/utils/user_restrictions_spec.rb +343 -0
  722. data/spec/lib/hq/structure/inserts_spec.rb +152 -0
  723. data/spec/lib/hq/structure_spec.rb +12 -0
  724. data/spec/models/cards/base_spec.rb +149 -0
  725. data/spec/models/cards/card_definition_resource_spec.rb +103 -0
  726. data/spec/models/cards/card_definition_spec.rb +50 -0
  727. data/spec/models/cards/card_field_spec.rb +46 -0
  728. data/spec/models/cards/field_builder_spec.rb +318 -0
  729. data/spec/models/cards/registry_spec.rb +147 -0
  730. data/spec/models/cards/role_card_field_spec.rb +111 -0
  731. data/spec/models/cards/role_resource_card_spec.rb +112 -0
  732. data/spec/models/has_helpers/master_record_spec.rb +20 -0
  733. data/spec/models/has_helpers/user_organization_spec.rb +28 -0
  734. data/spec/models/has_helpers/user_session_spec.rb +16 -0
  735. data/spec/presenters/base_presenter_spec.rb +166 -0
  736. data/spec/rails_helper.rb +119 -0
  737. data/spec/requests/has_helpers/factory_controller_spec.rb +159 -0
  738. data/spec/requests/has_helpers/health_check_controller_spec.rb +37 -0
  739. data/spec/scenarios/empty_setup.rb +6 -0
  740. data/spec/spec_helper.rb +22 -0
  741. data/spec/support/has_helpers/database_helpers.rb +12 -0
  742. data/spec/utils/sync_utils_spec.rb +233 -0
  743. data/spec/workers/goodjob/elasticsearch_process_batch_spec.rb +94 -0
  744. data/spec/workers/goodjob/elasticsearch_process_change_logs_master_worker_spec.rb +40 -0
  745. data/spec/workers/goodjob/elasticsearch_process_change_logs_worker_spec.rb +82 -0
  746. data/spec/workers/goodjob/elasticsearch_process_queue_spec.rb +89 -0
  747. data/spec/workers/goodjob/elasticsearch_reindex_spec.rb +49 -0
  748. metadata +1593 -0
metadata ADDED
@@ -0,0 +1,1593 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: has_helpers
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Kyle J. Ginavan
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: aws-sdk-s3
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.46'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.46'
26
+ - !ruby/object:Gem::Dependency
27
+ name: aws-sdk-sqs
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.22'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.22'
40
+ - !ruby/object:Gem::Dependency
41
+ name: barby
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.6.8
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.6.8
54
+ - !ruby/object:Gem::Dependency
55
+ name: cancancan
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: chronic
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '='
73
+ - !ruby/object:Gem::Version
74
+ version: 0.10.2
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - '='
80
+ - !ruby/object:Gem::Version
81
+ version: 0.10.2
82
+ - !ruby/object:Gem::Dependency
83
+ name: chunky_png
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.3'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.3'
96
+ - !ruby/object:Gem::Dependency
97
+ name: flipper
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.16'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.16'
110
+ - !ruby/object:Gem::Dependency
111
+ name: flipper-redis
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.16'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.16'
124
+ - !ruby/object:Gem::Dependency
125
+ name: flipper-ui
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.16'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.16'
138
+ - !ruby/object:Gem::Dependency
139
+ name: holidays
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '8.4'
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '8.4'
152
+ - !ruby/object:Gem::Dependency
153
+ name: humanize
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '2.0'
159
+ type: :runtime
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '2.0'
166
+ - !ruby/object:Gem::Dependency
167
+ name: jwt
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '2.7'
173
+ type: :runtime
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '2.7'
180
+ - !ruby/object:Gem::Dependency
181
+ name: marginalia
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '1.8'
187
+ type: :runtime
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '1.8'
194
+ - !ruby/object:Gem::Dependency
195
+ name: csv
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '3.3'
201
+ type: :runtime
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '3.3'
208
+ - !ruby/object:Gem::Dependency
209
+ name: multi_json
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '1.11'
215
+ - - "<="
216
+ - !ruby/object:Gem::Version
217
+ version: '1.17'
218
+ type: :runtime
219
+ prerelease: false
220
+ version_requirements: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: '1.11'
225
+ - - "<="
226
+ - !ruby/object:Gem::Version
227
+ version: '1.17'
228
+ - !ruby/object:Gem::Dependency
229
+ name: mustache
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: '1.0'
235
+ type: :runtime
236
+ prerelease: false
237
+ version_requirements: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: '1.0'
242
+ - !ruby/object:Gem::Dependency
243
+ name: observer
244
+ requirement: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - "~>"
247
+ - !ruby/object:Gem::Version
248
+ version: '0.1'
249
+ type: :runtime
250
+ prerelease: false
251
+ version_requirements: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: '0.1'
256
+ - !ruby/object:Gem::Dependency
257
+ name: opentelemetry-exporter-otlp
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: '0.24'
263
+ type: :runtime
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '0.24'
270
+ - !ruby/object:Gem::Dependency
271
+ name: opentelemetry-instrumentation-all
272
+ requirement: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: '0.27'
277
+ type: :runtime
278
+ prerelease: false
279
+ version_requirements: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: '0.27'
284
+ - !ruby/object:Gem::Dependency
285
+ name: opentelemetry-sdk
286
+ requirement: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - "~>"
289
+ - !ruby/object:Gem::Version
290
+ version: '1.5'
291
+ type: :runtime
292
+ prerelease: false
293
+ version_requirements: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - "~>"
296
+ - !ruby/object:Gem::Version
297
+ version: '1.5'
298
+ - !ruby/object:Gem::Dependency
299
+ name: rails
300
+ requirement: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - ">="
303
+ - !ruby/object:Gem::Version
304
+ version: '6.0'
305
+ - - "<"
306
+ - !ruby/object:Gem::Version
307
+ version: 7.2.4
308
+ type: :runtime
309
+ prerelease: false
310
+ version_requirements: !ruby/object:Gem::Requirement
311
+ requirements:
312
+ - - ">="
313
+ - !ruby/object:Gem::Version
314
+ version: '6.0'
315
+ - - "<"
316
+ - !ruby/object:Gem::Version
317
+ version: 7.2.4
318
+ - !ruby/object:Gem::Dependency
319
+ name: redcarpet
320
+ requirement: !ruby/object:Gem::Requirement
321
+ requirements:
322
+ - - "~>"
323
+ - !ruby/object:Gem::Version
324
+ version: '3.0'
325
+ type: :runtime
326
+ prerelease: false
327
+ version_requirements: !ruby/object:Gem::Requirement
328
+ requirements:
329
+ - - "~>"
330
+ - !ruby/object:Gem::Version
331
+ version: '3.0'
332
+ - !ruby/object:Gem::Dependency
333
+ name: searchkick
334
+ requirement: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - "~>"
337
+ - !ruby/object:Gem::Version
338
+ version: '4.1'
339
+ type: :runtime
340
+ prerelease: false
341
+ version_requirements: !ruby/object:Gem::Requirement
342
+ requirements:
343
+ - - "~>"
344
+ - !ruby/object:Gem::Version
345
+ version: '4.1'
346
+ - !ruby/object:Gem::Dependency
347
+ name: sidekiq
348
+ requirement: !ruby/object:Gem::Requirement
349
+ requirements:
350
+ - - "~>"
351
+ - !ruby/object:Gem::Version
352
+ version: '6.0'
353
+ type: :runtime
354
+ prerelease: false
355
+ version_requirements: !ruby/object:Gem::Requirement
356
+ requirements:
357
+ - - "~>"
358
+ - !ruby/object:Gem::Version
359
+ version: '6.0'
360
+ - !ruby/object:Gem::Dependency
361
+ name: sidekiq-ent
362
+ requirement: !ruby/object:Gem::Requirement
363
+ requirements:
364
+ - - "~>"
365
+ - !ruby/object:Gem::Version
366
+ version: '2.0'
367
+ type: :runtime
368
+ prerelease: false
369
+ version_requirements: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - "~>"
372
+ - !ruby/object:Gem::Version
373
+ version: '2.0'
374
+ - !ruby/object:Gem::Dependency
375
+ name: sidekiq-pro
376
+ requirement: !ruby/object:Gem::Requirement
377
+ requirements:
378
+ - - "~>"
379
+ - !ruby/object:Gem::Version
380
+ version: '5.0'
381
+ type: :runtime
382
+ prerelease: false
383
+ version_requirements: !ruby/object:Gem::Requirement
384
+ requirements:
385
+ - - "~>"
386
+ - !ruby/object:Gem::Version
387
+ version: '5.0'
388
+ - !ruby/object:Gem::Dependency
389
+ name: slack-ruby-client
390
+ requirement: !ruby/object:Gem::Requirement
391
+ requirements:
392
+ - - "~>"
393
+ - !ruby/object:Gem::Version
394
+ version: '1.0'
395
+ type: :runtime
396
+ prerelease: false
397
+ version_requirements: !ruby/object:Gem::Requirement
398
+ requirements:
399
+ - - "~>"
400
+ - !ruby/object:Gem::Version
401
+ version: '1.0'
402
+ - !ruby/object:Gem::Dependency
403
+ name: sorbet-runtime
404
+ requirement: !ruby/object:Gem::Requirement
405
+ requirements:
406
+ - - "~>"
407
+ - !ruby/object:Gem::Version
408
+ version: '0.0'
409
+ type: :runtime
410
+ prerelease: false
411
+ version_requirements: !ruby/object:Gem::Requirement
412
+ requirements:
413
+ - - "~>"
414
+ - !ruby/object:Gem::Version
415
+ version: '0.0'
416
+ - !ruby/object:Gem::Dependency
417
+ name: spreadsheet_architect
418
+ requirement: !ruby/object:Gem::Requirement
419
+ requirements:
420
+ - - "~>"
421
+ - !ruby/object:Gem::Version
422
+ version: '4.1'
423
+ type: :runtime
424
+ prerelease: false
425
+ version_requirements: !ruby/object:Gem::Requirement
426
+ requirements:
427
+ - - "~>"
428
+ - !ruby/object:Gem::Version
429
+ version: '4.1'
430
+ - !ruby/object:Gem::Dependency
431
+ name: strong_migrations
432
+ requirement: !ruby/object:Gem::Requirement
433
+ requirements:
434
+ - - "~>"
435
+ - !ruby/object:Gem::Version
436
+ version: '2.5'
437
+ type: :runtime
438
+ prerelease: false
439
+ version_requirements: !ruby/object:Gem::Requirement
440
+ requirements:
441
+ - - "~>"
442
+ - !ruby/object:Gem::Version
443
+ version: '2.5'
444
+ - !ruby/object:Gem::Dependency
445
+ name: wicked_pdf
446
+ requirement: !ruby/object:Gem::Requirement
447
+ requirements:
448
+ - - "~>"
449
+ - !ruby/object:Gem::Version
450
+ version: '1.4'
451
+ type: :runtime
452
+ prerelease: false
453
+ version_requirements: !ruby/object:Gem::Requirement
454
+ requirements:
455
+ - - "~>"
456
+ - !ruby/object:Gem::Version
457
+ version: '1.4'
458
+ - !ruby/object:Gem::Dependency
459
+ name: will_paginate
460
+ requirement: !ruby/object:Gem::Requirement
461
+ requirements:
462
+ - - "~>"
463
+ - !ruby/object:Gem::Version
464
+ version: '3.1'
465
+ type: :runtime
466
+ prerelease: false
467
+ version_requirements: !ruby/object:Gem::Requirement
468
+ requirements:
469
+ - - "~>"
470
+ - !ruby/object:Gem::Version
471
+ version: '3.1'
472
+ - !ruby/object:Gem::Dependency
473
+ name: kt-paperclip
474
+ requirement: !ruby/object:Gem::Requirement
475
+ requirements:
476
+ - - "~>"
477
+ - !ruby/object:Gem::Version
478
+ version: '7.2'
479
+ type: :development
480
+ prerelease: false
481
+ version_requirements: !ruby/object:Gem::Requirement
482
+ requirements:
483
+ - - "~>"
484
+ - !ruby/object:Gem::Version
485
+ version: '7.2'
486
+ - !ruby/object:Gem::Dependency
487
+ name: sorbet
488
+ requirement: !ruby/object:Gem::Requirement
489
+ requirements:
490
+ - - "~>"
491
+ - !ruby/object:Gem::Version
492
+ version: '0.6'
493
+ type: :development
494
+ prerelease: false
495
+ version_requirements: !ruby/object:Gem::Requirement
496
+ requirements:
497
+ - - "~>"
498
+ - !ruby/object:Gem::Version
499
+ version: '0.6'
500
+ - !ruby/object:Gem::Dependency
501
+ name: sprockets
502
+ requirement: !ruby/object:Gem::Requirement
503
+ requirements:
504
+ - - "~>"
505
+ - !ruby/object:Gem::Version
506
+ version: '3.0'
507
+ type: :development
508
+ prerelease: false
509
+ version_requirements: !ruby/object:Gem::Requirement
510
+ requirements:
511
+ - - "~>"
512
+ - !ruby/object:Gem::Version
513
+ version: '3.0'
514
+ - !ruby/object:Gem::Dependency
515
+ name: has_owner
516
+ requirement: !ruby/object:Gem::Requirement
517
+ requirements:
518
+ - - "~>"
519
+ - !ruby/object:Gem::Version
520
+ version: 5.0.0
521
+ type: :runtime
522
+ prerelease: false
523
+ version_requirements: !ruby/object:Gem::Requirement
524
+ requirements:
525
+ - - "~>"
526
+ - !ruby/object:Gem::Version
527
+ version: 5.0.0
528
+ - !ruby/object:Gem::Dependency
529
+ name: has_utils
530
+ requirement: !ruby/object:Gem::Requirement
531
+ requirements:
532
+ - - "~>"
533
+ - !ruby/object:Gem::Version
534
+ version: 5.0.0
535
+ type: :runtime
536
+ prerelease: false
537
+ version_requirements: !ruby/object:Gem::Requirement
538
+ requirements:
539
+ - - "~>"
540
+ - !ruby/object:Gem::Version
541
+ version: 5.0.0
542
+ - !ruby/object:Gem::Dependency
543
+ name: has_validated_attributes
544
+ requirement: !ruby/object:Gem::Requirement
545
+ requirements:
546
+ - - "~>"
547
+ - !ruby/object:Gem::Version
548
+ version: 5.0.0
549
+ type: :runtime
550
+ prerelease: false
551
+ version_requirements: !ruby/object:Gem::Requirement
552
+ requirements:
553
+ - - "~>"
554
+ - !ruby/object:Gem::Version
555
+ version: 5.0.0
556
+ - !ruby/object:Gem::Dependency
557
+ name: hq-graphql
558
+ requirement: !ruby/object:Gem::Requirement
559
+ requirements:
560
+ - - "~>"
561
+ - !ruby/object:Gem::Version
562
+ version: 5.0.0
563
+ type: :runtime
564
+ prerelease: false
565
+ version_requirements: !ruby/object:Gem::Requirement
566
+ requirements:
567
+ - - "~>"
568
+ - !ruby/object:Gem::Version
569
+ version: 5.0.0
570
+ - !ruby/object:Gem::Dependency
571
+ name: psql_hq
572
+ requirement: !ruby/object:Gem::Requirement
573
+ requirements:
574
+ - - "~>"
575
+ - !ruby/object:Gem::Version
576
+ version: 5.0.0
577
+ type: :runtime
578
+ prerelease: false
579
+ version_requirements: !ruby/object:Gem::Requirement
580
+ requirements:
581
+ - - "~>"
582
+ - !ruby/object:Gem::Version
583
+ version: 5.0.0
584
+ - !ruby/object:Gem::Dependency
585
+ name: testhq
586
+ requirement: !ruby/object:Gem::Requirement
587
+ requirements:
588
+ - - "~>"
589
+ - !ruby/object:Gem::Version
590
+ version: 5.0.0
591
+ type: :development
592
+ prerelease: false
593
+ version_requirements: !ruby/object:Gem::Requirement
594
+ requirements:
595
+ - - "~>"
596
+ - !ruby/object:Gem::Version
597
+ version: 5.0.0
598
+ description: Ruby helpers.
599
+ email:
600
+ - kyle@onehq.com
601
+ executables: []
602
+ extensions: []
603
+ extra_rdoc_files: []
604
+ files:
605
+ - ".gitignore"
606
+ - ".rspec"
607
+ - ".rubocop.yml"
608
+ - ".ruby-gemset"
609
+ - ".ruby-version"
610
+ - ".tekton/Chart.yaml"
611
+ - ".tekton/templates/pipelinerun.yaml"
612
+ - ".tekton/values-main.yaml"
613
+ - ".tekton/values-pr.yaml"
614
+ - ".tekton/values.yaml"
615
+ - ".tool-versions"
616
+ - CHANGELOG.md
617
+ - Gemfile
618
+ - README.md
619
+ - Rakefile
620
+ - app/api/has_helpers/rack_api.rb
621
+ - app/api/has_helpers/search_api.rb
622
+ - app/assets/stylesheets/has_helpers/base.scss
623
+ - app/assets/stylesheets/has_helpers/color_palette.scss
624
+ - app/assets/stylesheets/has_helpers/color_palettes/default.scss
625
+ - app/assets/stylesheets/has_helpers/components/dataset.scss
626
+ - app/assets/stylesheets/has_helpers/mixins.scss
627
+ - app/commands/has_helpers/cards/available_cards_command.rb
628
+ - app/commands/has_helpers/cards/card_data_command.rb
629
+ - app/commands/reports/base_options.rb
630
+ - app/commands/reports/belongs_to_options.rb
631
+ - app/commands/reports/constant_options.rb
632
+ - app/commands/reports/external_graphql_client.rb
633
+ - app/commands/reports/fill_dates.rb
634
+ - app/commands/reports/filter_option_generator.rb
635
+ - app/commands/reports/generator.rb
636
+ - app/commands/reports/has_many_options.rb
637
+ - app/commands/reports/importer.rb
638
+ - app/commands/reports/nested_attribute_options.rb
639
+ - app/constants/color.rb
640
+ - app/constants/file_format.rb
641
+ - app/constants/has_helpers/cards/card_custom_field.rb
642
+ - app/constants/has_helpers/cards/card_data_type.rb
643
+ - app/constants/has_helpers/cards/card_identifier.rb
644
+ - app/constants/has_helpers/cards/card_layout_type.rb
645
+ - app/constants/has_helpers/cards/card_variant_type.rb
646
+ - app/constants/has_helpers/link_type.rb
647
+ - app/constants/has_helpers/notification_alert_status.rb
648
+ - app/constants/has_helpers/notification_alert_type.rb
649
+ - app/constants/has_helpers/operation.rb
650
+ - app/constants/has_helpers/resource_type.rb
651
+ - app/constants/icon.rb
652
+ - app/constants/logical_operator.rb
653
+ - app/constants/option.rb
654
+ - app/constants/time_zone.rb
655
+ - app/constructors/has_helpers/base_constructor.rb
656
+ - app/controllers/concerns/has_helpers/service_trust/authenticated_as_service.rb
657
+ - app/controllers/concerns/has_helpers/service_trust/graphql_authentication.rb
658
+ - app/controllers/has_helpers/controller.rb
659
+ - app/controllers/has_helpers/factory_controller.rb
660
+ - app/controllers/has_helpers/graphql_extensions.rb
661
+ - app/controllers/has_helpers/health_check_controller.rb
662
+ - app/controllers/has_helpers/search_extensions.rb
663
+ - app/controllers/has_helpers/service_trust/jwks_controller.rb
664
+ - app/controllers/has_helpers/xlsx_export.rb
665
+ - app/controllers/search_extensions.rb
666
+ - app/graphql/has_helpers/base_type.rb
667
+ - app/graphql/has_helpers/base_union.rb
668
+ - app/graphql/has_helpers/enums/resource_enum.rb
669
+ - app/graphql/has_helpers/middleware/application_access.rb
670
+ - app/graphql/has_helpers/mutations/base.rb
671
+ - app/graphql/has_helpers/mutations/external_data_sync.rb
672
+ - app/graphql/has_helpers/mutations/mark_individual_alert_read.rb
673
+ - app/graphql/has_helpers/mutations/mark_notifications_read.rb
674
+ - app/graphql/has_helpers/mutations/toggle_favorite.rb
675
+ - app/graphql/has_helpers/resolvers/app_nav.rb
676
+ - app/graphql/has_helpers/resolvers/base.rb
677
+ - app/graphql/has_helpers/resolvers/cards/available_cards.rb
678
+ - app/graphql/has_helpers/resolvers/cards/card_data.rb
679
+ - app/graphql/has_helpers/resolvers/cards/hover_card_data.rb
680
+ - app/graphql/has_helpers/resolvers/favorite.rb
681
+ - app/graphql/has_helpers/resolvers/internal/roles.rb
682
+ - app/graphql/has_helpers/resolvers/is_favorite.rb
683
+ - app/graphql/has_helpers/resolvers/list_notification_alerts.rb
684
+ - app/graphql/has_helpers/resolvers/lookup.rb
685
+ - app/graphql/has_helpers/resolvers/recently_viewed.rb
686
+ - app/graphql/has_helpers/resolvers/resource_tab.rb
687
+ - app/graphql/has_helpers/resolvers/search.rb
688
+ - app/graphql/has_helpers/resolvers/search_query.rb
689
+ - app/graphql/has_helpers/resolvers/user_application_order.rb
690
+ - app/graphql/has_helpers/resources/organization_option_resource.rb
691
+ - app/graphql/has_helpers/resources/organization_resource_resource.rb
692
+ - app/graphql/has_helpers/resources/resource_group_resource.rb
693
+ - app/graphql/has_helpers/resources/resource_resource.rb
694
+ - app/graphql/has_helpers/resources/user_role_resource.rb
695
+ - app/graphql/has_helpers/types/application_order_type.rb
696
+ - app/graphql/has_helpers/types/cards/available_card_type.rb
697
+ - app/graphql/has_helpers/types/cards/card_badge_type.rb
698
+ - app/graphql/has_helpers/types/cards/card_config_type.rb
699
+ - app/graphql/has_helpers/types/cards/card_data_type.rb
700
+ - app/graphql/has_helpers/types/cards/card_entry_field_type.rb
701
+ - app/graphql/has_helpers/types/cards/card_entry_type.rb
702
+ - app/graphql/has_helpers/types/cards/card_field_config_type.rb
703
+ - app/graphql/has_helpers/types/layouts/app_nav/link_section_type.rb
704
+ - app/graphql/has_helpers/types/layouts/app_nav/link_type.rb
705
+ - app/graphql/has_helpers/types/layouts/app_nav/sub_link_type.rb
706
+ - app/graphql/has_helpers/types/layouts/app_nav/type.rb
707
+ - app/graphql/has_helpers/types/lookup.rb
708
+ - app/graphql/has_helpers/types/resource_tab/type.rb
709
+ - app/graphql/has_helpers/types/role_type.rb
710
+ - app/graphql/has_helpers/types/search/detail_badge_type.rb
711
+ - app/graphql/has_helpers/types/search/detail_item_type.rb
712
+ - app/graphql/has_helpers/types/search/detail_type.rb
713
+ - app/graphql/has_helpers/types/search/filter_operation_enum.rb
714
+ - app/graphql/has_helpers/types/search/input_type.rb
715
+ - app/graphql/has_helpers/types/search/result_type.rb
716
+ - app/graphql/has_helpers/types/search/search_filter_input_type.rb
717
+ - app/graphql/has_helpers/types/search/type.rb
718
+ - app/importers/has_helpers/cards/importer.rb
719
+ - app/lib/has_helpers/application_helper.rb
720
+ - app/lib/has_helpers/dn/processor.rb
721
+ - app/lib/has_helpers/dn/refresh.rb
722
+ - app/lib/has_helpers/dn/utils/backfill_utils.rb
723
+ - app/lib/has_helpers/dn/utils/query_utils.rb
724
+ - app/lib/has_helpers/feature.rb
725
+ - app/lib/has_helpers/hq_exception.rb
726
+ - app/lib/has_helpers/index.rb
727
+ - app/lib/has_helpers/organization_merge.rb
728
+ - app/lib/has_helpers/query.rb
729
+ - app/lib/has_helpers/query/elasticsearch.rb
730
+ - app/lib/has_helpers/query/provider.rb
731
+ - app/lib/has_helpers/query/sql.rb
732
+ - app/lib/has_helpers/search.rb
733
+ - app/lib/has_helpers/search/elasticsearch.rb
734
+ - app/lib/has_helpers/search/elasticsearch_shared.rb
735
+ - app/lib/has_helpers/search/provider.rb
736
+ - app/lib/has_helpers/search/search_utils.rb
737
+ - app/lib/has_helpers/search/sql_search.rb
738
+ - app/models/ability.rb
739
+ - app/models/has_helpers/application.rb
740
+ - app/models/has_helpers/application_record.rb
741
+ - app/models/has_helpers/cards/card_builder/base.rb
742
+ - app/models/has_helpers/cards/card_builder/card_definition_builder.rb
743
+ - app/models/has_helpers/cards/card_builder/definition_context.rb
744
+ - app/models/has_helpers/cards/card_builder/field_builder.rb
745
+ - app/models/has_helpers/cards/card_builder/resource_builder.rb
746
+ - app/models/has_helpers/cards/card_definition.rb
747
+ - app/models/has_helpers/cards/card_definition_resource.rb
748
+ - app/models/has_helpers/cards/card_field.rb
749
+ - app/models/has_helpers/cards/registry.rb
750
+ - app/models/has_helpers/cards/role_card_field.rb
751
+ - app/models/has_helpers/cards/role_resource_card.rb
752
+ - app/models/has_helpers/dn_utils.rb
753
+ - app/models/has_helpers/favorite.rb
754
+ - app/models/has_helpers/master_record.rb
755
+ - app/models/has_helpers/notification_alert.rb
756
+ - app/models/has_helpers/organization.rb
757
+ - app/models/has_helpers/organization_link.rb
758
+ - app/models/has_helpers/organization_methods.rb
759
+ - app/models/has_helpers/organization_option.rb
760
+ - app/models/has_helpers/organization_resource.rb
761
+ - app/models/has_helpers/pending_db_operation.rb
762
+ - app/models/has_helpers/recently_viewed.rb
763
+ - app/models/has_helpers/reindex_queue.rb
764
+ - app/models/has_helpers/resource.rb
765
+ - app/models/has_helpers/resource_group.rb
766
+ - app/models/has_helpers/restriction.rb
767
+ - app/models/has_helpers/restriction_operation.rb
768
+ - app/models/has_helpers/role.rb
769
+ - app/models/has_helpers/service_trust/audit_log.rb
770
+ - app/models/has_helpers/service_trust/key.rb
771
+ - app/models/has_helpers/stat.rb
772
+ - app/models/has_helpers/user.rb
773
+ - app/models/has_helpers/user_methods.rb
774
+ - app/models/has_helpers/user_organization.rb
775
+ - app/models/has_helpers/user_role.rb
776
+ - app/models/has_helpers/user_session.rb
777
+ - app/presenters/has_helpers/barcode_base_presenter.rb
778
+ - app/presenters/has_helpers/base_presenter.rb
779
+ - app/presenters/has_helpers/cacheable_item.rb
780
+ - app/presenters/has_helpers/item_presenter.rb
781
+ - app/presenters/has_helpers/items_presenter.rb
782
+ - app/presenters/has_helpers/resource/action_presenter.rb
783
+ - app/presenters/has_helpers/resource/cell_presenter.rb
784
+ - app/presenters/has_helpers/resource/email_presenter.rb
785
+ - app/presenters/has_helpers/resource/form_presenter.rb
786
+ - app/presenters/has_helpers/resource/info_collection_presenter.rb
787
+ - app/presenters/has_helpers/resource/info_presenter.rb
788
+ - app/presenters/has_helpers/resource/list_presenter.rb
789
+ - app/presenters/has_helpers/resource/note_presenter.rb
790
+ - app/presenters/has_helpers/resource/row_presenter.rb
791
+ - app/presenters/has_helpers/resource/tag_presenter.rb
792
+ - app/presenters/has_helpers/search_presenter.rb
793
+ - app/triggers/has_helpers/erase_denormalized_belongs_to_column_trigger.rb
794
+ - app/triggers/has_helpers/limit_favorites.rb
795
+ - app/utils/has_helpers/redis_configurable.rb
796
+ - app/utils/has_helpers/sync_utils.rb
797
+ - app/views/has_helpers/actions/_action.html.erb
798
+ - app/views/has_helpers/alerts/_alert.html.erb
799
+ - app/views/has_helpers/barcodes.html.erb
800
+ - app/views/has_helpers/containers/_container.html.erb
801
+ - app/views/has_helpers/email_notifier/system.html.erb
802
+ - app/views/has_helpers/email_notifier/system.text.erb
803
+ - app/views/has_helpers/enumerables/_enumerable.html.erb
804
+ - app/views/has_helpers/icons/_icon.html.erb
805
+ - app/views/has_helpers/render_objects/_render_object.html.erb
806
+ - app/views/has_helpers/services/_service.html.erb
807
+ - app/views/has_helpers/text_nodes/_text_node.html.erb
808
+ - app/views/has_helpers/ui_attributes/_html_attrs.html.erb
809
+ - app/workers/elasticsearch_process_queue.rb
810
+ - app/workers/elasticsearch_reindex.rb
811
+ - app/workers/elasticsearch_reindex_scheduler.rb
812
+ - app/workers/good_job/configurable_backfill.rb
813
+ - app/workers/good_job/cron_denormalization_stats_manager.rb
814
+ - app/workers/good_job/denormalization_stats_worker.rb
815
+ - app/workers/good_job/dn_update_worker.rb
816
+ - app/workers/good_job/dn_worker.rb
817
+ - app/workers/good_job/elasticsearch_old_index_cleaner_worker.rb
818
+ - app/workers/good_job/elasticsearch_on_finish_reindex.rb
819
+ - app/workers/good_job/elasticsearch_process_batch.rb
820
+ - app/workers/good_job/elasticsearch_process_change_logs_master_worker.rb
821
+ - app/workers/good_job/elasticsearch_process_change_logs_worker.rb
822
+ - app/workers/good_job/elasticsearch_process_queue.rb
823
+ - app/workers/good_job/elasticsearch_reindex.rb
824
+ - app/workers/has_helpers/cards/orphan_card_sweeper.rb
825
+ - app/workers/has_helpers/db_operations/clean_stats_worker.rb
826
+ - app/workers/has_helpers/db_operations/helper_worker.rb
827
+ - app/workers/has_helpers/db_operations/main_worker.rb
828
+ - app/workers/has_helpers/db_operations/operations.rb
829
+ - app/workers/has_helpers/db_operations/update_operations_stats_resume_worker.rb
830
+ - app/workers/has_helpers/default_worker.rb
831
+ - app/workers/has_helpers/good_job/notification_alert_cleanup_worker.rb
832
+ - app/workers/has_helpers/service_trust/audit_log_cleanup_worker.rb
833
+ - app/workers/sidekiq/elasticsearch_old_index_cleaner_worker.rb
834
+ - app/workers/sidekiq/elasticsearch_process_batch.rb
835
+ - app/workers/sidekiq/elasticsearch_process_queue.rb
836
+ - app/workers/sidekiq/elasticsearch_reindex.rb
837
+ - config.ru
838
+ - config/initializers/action_view.rb
839
+ - config/initializers/inflections.rb
840
+ - config/initializers/marginalia.rb
841
+ - config/initializers/mime_types.rb
842
+ - config/initializers/opentelemetry.rb
843
+ - config/initializers/redis_conf.rb
844
+ - config/initializers/searchkick.rb
845
+ - config/initializers/will_paginate.rb
846
+ - config/redis.yml
847
+ - config/routes.rb
848
+ - config/service_trust_routes.rb
849
+ - db/migrate/20230127194725_create_organization_table.rb
850
+ - db/migrate/20230127194726_validate_organization_foreign_keys.rb
851
+ - db/migrate/20230206141413_create_security_models.rb
852
+ - db/migrate/20230206141513_create_restriction_model.rb
853
+ - db/migrate/20230206142613_add_security_indexes.rb
854
+ - db/migrate/20230206143513_security_model_constants_seed.rb
855
+ - db/migrate/20230206161513_add_organization_to_security_models.rb
856
+ - db/migrate/20230209121019_create_search_group_models.rb
857
+ - db/migrate/20230209122919_add_search_group_indexes.rb
858
+ - db/migrate/20230209181832_add_search_group_resources_type_constraint_trigger.rb
859
+ - db/migrate/20230313220337_create_table_user_sessions.rb
860
+ - db/migrate/20230517141106_update_resource_types.rb
861
+ - db/migrate/20230518194611_add_resources_contraints.rb
862
+ - db/migrate/20230518194642_create_nested_resource_model.rb
863
+ - db/migrate/20230518194645_validate_security_models_constraints.rb
864
+ - db/migrate/20230608125037_add_inactive_field_to_user_sessions.rb
865
+ - db/migrate/20230919191525_add_parent_id_to_resources.rb
866
+ - db/migrate/20230919191535_validate_parent_id_fk_resources.rb
867
+ - db/migrate/20230919210456_drop_nested_resources.rb
868
+ - db/migrate/20231222135620_add_user_role.rb
869
+ - db/migrate/20240108172021_create_favorites_table.rb
870
+ - db/migrate/20240108190209_create_organization_link_table_if_doesnt_exists.rb
871
+ - db/migrate/20240109211445_validate_fks_org_links.rb
872
+ - db/migrate/20240110135440_create_recently_vieweds.rb
873
+ - db/migrate/20240112185312_link_type_options_seed.rb
874
+ - db/migrate/20240116173201_organization_link_resource_tab_constraints.rb
875
+ - db/migrate/20240131160949_add_user_organizations_table.rb
876
+ - db/migrate/20240212132519_add_organization_in_user_sessions.rb
877
+ - db/migrate/20240227135052_add_user_organization_composite_fks.rb
878
+ - db/migrate/20240312193501_update_organization_links.rb
879
+ - db/migrate/20240426185902_add_user_organizations_current_organization_column.rb
880
+ - db/migrate/20240429214601_add_primary_trigger.rb
881
+ - db/migrate/20241112131819_add_json_file_format_seed.rb
882
+ - db/migrate/20250520133417_create_restriction_operations.rb
883
+ - db/migrate/20250520133420_validate_create_restriction_operations.rb
884
+ - db/migrate/20250520140642_add_indexes_to_restrictions.rb
885
+ - db/migrate/20250529130741_create_notification_alerts_table.rb
886
+ - db/migrate/20250530223332_create_data_migrations_table.rb
887
+ - db/migrate/20250605121622_seed_notification_alert_status.rb
888
+ - db/migrate/20250605131439_seed_notification_alert_types.rb
889
+ - db/migrate/20250606173128_update_notification_alert_length_constraint.rb
890
+ - db/migrate/20250606174043_validate_notification_alert_length_constraints.rb
891
+ - db/migrate/20250624183000_add_data_import_alert_type.rb
892
+ - db/migrate/20250722183935_create_organization_options_table.rb
893
+ - db/migrate/20250722192724_validate_organization_options_fks_and_constraints.rb
894
+ - db/migrate/20250722192936_add_indexes_to_organization_options_table.rb
895
+ - db/migrate/20250915132448_add_column_restrictions_hash.rb
896
+ - db/migrate/20250917143211_add_column_permissions_hash.rb
897
+ - db/migrate/20251001145950_add_trust_this_device.rb
898
+ - db/migrate/20251021130835_add_backend_urls_to_applications_table.rb
899
+ - db/migrate/20251021172715_validate_backend_urls_constraints_in_applications.rb
900
+ - db/migrate/20251030200020_create_card_definitions.rb
901
+ - db/migrate/20251030201012_create_card_definition_resources.rb
902
+ - db/migrate/20251030201236_create_card_fields.rb
903
+ - db/migrate/20251103194317_create_role_resource_cards.rb
904
+ - db/migrate/20251103194426_create_role_card_fields.rb
905
+ - db/migrate/20251107173218_validate_columns_from_cards.rb
906
+ - db/migrate/20251111173212_add_column_application_array.rb
907
+ - db/migrate/20251112203326_add_card_types.rb
908
+ - db/migrate/20251115120000_add_virtual_cards_support.rb
909
+ - db/migrate/20251202231256_add_org_scoped_fk_role_resource_cards_to_roles.rb
910
+ - db/migrate/20260105134504_add_accessor_field_resource_type.rb
911
+ - db/migrate/20260115123000_add_default_visibility_to_card_definitions.rb
912
+ - db/migrate/20260120175037_is_new_admin.rb
913
+ - db/migrate/20260122392008_add_stats_table.rb
914
+ - db/migrate/20260414204718_add_index_to_stats_table.rb
915
+ - db/migrate/20260509120000_create_service_trust_keys.rb
916
+ - db/migrate/20260509120001_create_service_trust_audit_logs.rb
917
+ - db/migrate/20260511120000_add_direction_to_service_trust_audit_logs.rb
918
+ - db/migrate/20260511121000_remove_role_fk_from_role_resource_cards.rb
919
+ - db/migrate/20260511121001_add_disabled_at_to_role_resource_cards.rb
920
+ - db/migrate/20260605120100_seed_hover_card_options.rb
921
+ - db/migrate/20260608120000_seed_badge_list_card_data_type.rb
922
+ - db/migrate/20260727000000_add_two_factor_trust_id_to_user_sessions.rb
923
+ - db/seeds.rb
924
+ - docs/Elasticsearch.md
925
+ - docs/Search_API.md
926
+ - docs/cards_role_proxy.md
927
+ - docs/factory_api.md
928
+ - has-helpers-pr-289-pipeline.yaml
929
+ - has-helpers-pr-298-pipeline.yaml
930
+ - has_helpers.gemspec
931
+ - lib/active_record/migration/active_migration_patch.rb
932
+ - lib/generators/has_helpers/install/USAGE
933
+ - lib/generators/has_helpers/install/install_generator.rb
934
+ - lib/generators/has_helpers/install/templates/migrate/has_helpers_initial_setup.rb
935
+ - lib/has_helpers.rb
936
+ - lib/has_helpers/active_record.rb
937
+ - lib/has_helpers/active_record/base.rb
938
+ - lib/has_helpers/active_record/date_range.rb
939
+ - lib/has_helpers/active_record/nested_resource.rb
940
+ - lib/has_helpers/active_record/validation.rb
941
+ - lib/has_helpers/app.rb
942
+ - lib/has_helpers/app/command.rb
943
+ - lib/has_helpers/assets_precompile_helper.rb
944
+ - lib/has_helpers/attributes.rb
945
+ - lib/has_helpers/aws.rb
946
+ - lib/has_helpers/cards.rb
947
+ - lib/has_helpers/cards/cache.rb
948
+ - lib/has_helpers/cards/config.rb
949
+ - lib/has_helpers/cards/remote_role.rb
950
+ - lib/has_helpers/cards/remote_roles.rb
951
+ - lib/has_helpers/cards/roles.rb
952
+ - lib/has_helpers/concerns/hydrate_concern.rb
953
+ - lib/has_helpers/concerns/importable_accessors.rb
954
+ - lib/has_helpers/concerns/restrictions_parseable.rb
955
+ - lib/has_helpers/config.rb
956
+ - lib/has_helpers/constant.rb
957
+ - lib/has_helpers/constraints.rb
958
+ - lib/has_helpers/core_ext/array.rb
959
+ - lib/has_helpers/core_ext/date.rb
960
+ - lib/has_helpers/core_ext/date/infinity.rb
961
+ - lib/has_helpers/core_ext/enumerable.rb
962
+ - lib/has_helpers/core_ext/false_class.rb
963
+ - lib/has_helpers/core_ext/float.rb
964
+ - lib/has_helpers/core_ext/hash.rb
965
+ - lib/has_helpers/core_ext/integer.rb
966
+ - lib/has_helpers/core_ext/nil_class.rb
967
+ - lib/has_helpers/core_ext/object.rb
968
+ - lib/has_helpers/core_ext/proc.rb
969
+ - lib/has_helpers/core_ext/string.rb
970
+ - lib/has_helpers/core_ext/symbol.rb
971
+ - lib/has_helpers/core_ext/true_class.rb
972
+ - lib/has_helpers/cursor.rb
973
+ - lib/has_helpers/data_migration.rb
974
+ - lib/has_helpers/data_migration/base.rb
975
+ - lib/has_helpers/data_migration/large_worker.rb
976
+ - lib/has_helpers/data_migration/master_worker.rb
977
+ - lib/has_helpers/data_migration/migrator.rb
978
+ - lib/has_helpers/data_migration/model.rb
979
+ - lib/has_helpers/data_migration/small_worker.rb
980
+ - lib/has_helpers/engine.rb
981
+ - lib/has_helpers/extensions.rb
982
+ - lib/has_helpers/factory_api.rb
983
+ - lib/has_helpers/factory_scenario.rb
984
+ - lib/has_helpers/factory_scenario/definition.rb
985
+ - lib/has_helpers/factory_scenario/dsl.rb
986
+ - lib/has_helpers/factory_scenario/factory_bot_override.rb
987
+ - lib/has_helpers/factory_scenario/registry.rb
988
+ - lib/has_helpers/factory_scenario/runner.rb
989
+ - lib/has_helpers/fixed_expiration_time_cache_session_store.rb
990
+ - lib/has_helpers/flattener.rb
991
+ - lib/has_helpers/flattener/association.rb
992
+ - lib/has_helpers/flattener/attribute.rb
993
+ - lib/has_helpers/flattener/base.rb
994
+ - lib/has_helpers/flattener/column.rb
995
+ - lib/has_helpers/flattener/column/types.rb
996
+ - lib/has_helpers/flattener/pivot.rb
997
+ - lib/has_helpers/flattener/reset.rb
998
+ - lib/has_helpers/flattener/resource.rb
999
+ - lib/has_helpers/flattener/resource_generator.rb
1000
+ - lib/has_helpers/flattener/utils.rb
1001
+ - lib/has_helpers/hash_accessors.rb
1002
+ - lib/has_helpers/helpers/application.rb
1003
+ - lib/has_helpers/index/config.rb
1004
+ - lib/has_helpers/lazy_config.rb
1005
+ - lib/has_helpers/resource_importer.rb
1006
+ - lib/has_helpers/resources.rb
1007
+ - lib/has_helpers/rspec.rb
1008
+ - lib/has_helpers/rspec/constants.rb
1009
+ - lib/has_helpers/rspec/factories.rb
1010
+ - lib/has_helpers/sentry/graphql_trace.rb
1011
+ - lib/has_helpers/serializer.rb
1012
+ - lib/has_helpers/service_trust.rb
1013
+ - lib/has_helpers/service_trust/audit.rb
1014
+ - lib/has_helpers/service_trust/authorization.rb
1015
+ - lib/has_helpers/service_trust/bearer_token.rb
1016
+ - lib/has_helpers/service_trust/capability.rb
1017
+ - lib/has_helpers/service_trust/client.rb
1018
+ - lib/has_helpers/service_trust/client/response.rb
1019
+ - lib/has_helpers/service_trust/client/retry.rb
1020
+ - lib/has_helpers/service_trust/configuration.rb
1021
+ - lib/has_helpers/service_trust/engine.rb
1022
+ - lib/has_helpers/service_trust/errors.rb
1023
+ - lib/has_helpers/service_trust/graphql/authorizable.rb
1024
+ - lib/has_helpers/service_trust/graphql_client.rb
1025
+ - lib/has_helpers/service_trust/jwks_client.rb
1026
+ - lib/has_helpers/service_trust/jwt_codec.rb
1027
+ - lib/has_helpers/service_trust/key_manager.rb
1028
+ - lib/has_helpers/service_trust/rate_limiter.rb
1029
+ - lib/has_helpers/service_trust/replay_cache.rb
1030
+ - lib/has_helpers/service_trust/signer.rb
1031
+ - lib/has_helpers/service_trust/test.rb
1032
+ - lib/has_helpers/service_trust/verifier.rb
1033
+ - lib/has_helpers/service_trust/verify_middleware.rb
1034
+ - lib/has_helpers/test_helpers/factory_data/unit_addresses.rb
1035
+ - lib/has_helpers/test_helpers/factory_data/unit_advisors.rb
1036
+ - lib/has_helpers/test_helpers/factory_data/unit_emails.rb
1037
+ - lib/has_helpers/test_helpers/factory_data/unit_organizations.rb
1038
+ - lib/has_helpers/test_helpers/factory_data/unit_people.rb
1039
+ - lib/has_helpers/test_helpers/factory_data/unit_phones.rb
1040
+ - lib/has_helpers/test_helpers/factory_data/unit_states.rb
1041
+ - lib/has_helpers/test_helpers/factory_data/unit_webs.rb
1042
+ - lib/has_helpers/test_helpers/shoulda_helpers.rb
1043
+ - lib/has_helpers/ui_attributes.rb
1044
+ - lib/has_helpers/utils.rb
1045
+ - lib/has_helpers/utils/action.rb
1046
+ - lib/has_helpers/utils/active_record_utils.rb
1047
+ - lib/has_helpers/utils/alert.rb
1048
+ - lib/has_helpers/utils/container.rb
1049
+ - lib/has_helpers/utils/dataset.rb
1050
+ - lib/has_helpers/utils/email_notifier.rb
1051
+ - lib/has_helpers/utils/icon.rb
1052
+ - lib/has_helpers/utils/input.rb
1053
+ - lib/has_helpers/utils/log_notifier.rb
1054
+ - lib/has_helpers/utils/render_object.rb
1055
+ - lib/has_helpers/utils/s3_utils.rb
1056
+ - lib/has_helpers/utils/service.rb
1057
+ - lib/has_helpers/utils/slack_conf.rb
1058
+ - lib/has_helpers/utils/slack_notifier.rb
1059
+ - lib/has_helpers/utils/text_node.rb
1060
+ - lib/has_helpers/utils/user_restrictions.rb
1061
+ - lib/has_helpers/version.rb
1062
+ - lib/has_helpers/web_socket_publisher.rb
1063
+ - lib/has_helpers/webhook.rb
1064
+ - lib/hq/resource.rb
1065
+ - lib/hq/structure.rb
1066
+ - lib/hq/structure/inserts.rb
1067
+ - lib/tasks/has_helpers/service_trust.rake
1068
+ - script/rails
1069
+ - sorbet/config
1070
+ - sorbet/rbi/gems/actionpack.rbi
1071
+ - sorbet/rbi/gems/activemodel.rbi
1072
+ - sorbet/rbi/gems/activerecord.rbi
1073
+ - sorbet/rbi/gems/activesupport.rbi
1074
+ - sorbet/rbi/gems/barby.rbi
1075
+ - sorbet/rbi/gems/better_errors.rbi
1076
+ - sorbet/rbi/gems/binding_of_caller.rbi
1077
+ - sorbet/rbi/gems/byebug.rbi
1078
+ - sorbet/rbi/gems/chronic.rbi
1079
+ - sorbet/rbi/gems/chunky_png.rbi
1080
+ - sorbet/rbi/gems/climate_control.rbi
1081
+ - sorbet/rbi/gems/coderay.rbi
1082
+ - sorbet/rbi/gems/concurrent-ruby.rbi
1083
+ - sorbet/rbi/gems/debug_inspector.rbi
1084
+ - sorbet/rbi/gems/erubi.rbi
1085
+ - sorbet/rbi/gems/holidays.rbi
1086
+ - sorbet/rbi/gems/i18n.rbi
1087
+ - sorbet/rbi/gems/method_source.rbi
1088
+ - sorbet/rbi/gems/mime-types-data.rbi
1089
+ - sorbet/rbi/gems/mime-types.rbi
1090
+ - sorbet/rbi/gems/mimemagic.rbi
1091
+ - sorbet/rbi/gems/minitest.rbi
1092
+ - sorbet/rbi/gems/mustache.rbi
1093
+ - sorbet/rbi/gems/paperclip.rbi
1094
+ - sorbet/rbi/gems/parallel.rbi
1095
+ - sorbet/rbi/gems/parallel_tests.rbi
1096
+ - sorbet/rbi/gems/pry-rails.rbi
1097
+ - sorbet/rbi/gems/pry.rbi
1098
+ - sorbet/rbi/gems/rack.rbi
1099
+ - sorbet/rbi/gems/railties.rbi
1100
+ - sorbet/rbi/gems/rspec-core.rbi
1101
+ - sorbet/rbi/gems/rspec-expectations.rbi
1102
+ - sorbet/rbi/gems/rspec-support.rbi
1103
+ - sorbet/rbi/gems/rspec.rbi
1104
+ - sorbet/rbi/gems/spreadsheet_architect.rbi
1105
+ - sorbet/rbi/gems/sprockets.rbi
1106
+ - sorbet/rbi/gems/terrapin.rbi
1107
+ - sorbet/rbi/gems/testhq.rbi
1108
+ - sorbet/rbi/gems/thor.rbi
1109
+ - sorbet/rbi/gems/thread_safe.rbi
1110
+ - sorbet/rbi/gems/tzinfo.rbi
1111
+ - sorbet/rbi/gems/zeitwerk.rbi
1112
+ - sorbet/rbi/hidden-definitions/errors.txt
1113
+ - sorbet/rbi/hidden-definitions/hidden.rbi
1114
+ - sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi
1115
+ - sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi
1116
+ - sorbet/rbi/sorbet-typed/lib/actionview/all/actionview.rbi
1117
+ - sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi
1118
+ - sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi
1119
+ - sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi
1120
+ - sorbet/rbi/sorbet-typed/lib/activerecord/~>6.0.0/activerecord.rbi
1121
+ - sorbet/rbi/sorbet-typed/lib/activestorage/>=6.0.0/activestorage.rbi
1122
+ - sorbet/rbi/sorbet-typed/lib/activestorage/all/activestorage.rbi
1123
+ - sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi
1124
+ - sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi
1125
+ - sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi
1126
+ - sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi
1127
+ - sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi
1128
+ - sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi
1129
+ - sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi
1130
+ - sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi
1131
+ - sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi
1132
+ - sorbet/rbi/todo.rbi
1133
+ - spec/commands/cards/available_cards_command_spec.rb
1134
+ - spec/commands/cards/card_data_command_spec.rb
1135
+ - spec/constructors/has_helpers/base_constructor_spec.rb
1136
+ - spec/controllers/has_helpers/controller_spec.rb
1137
+ - spec/controllers/has_helpers/xlsx_export_spec.rb
1138
+ - spec/factories/advisors.rb
1139
+ - spec/factories/anonymous_cowards.rb
1140
+ - spec/factories/applications.rb
1141
+ - spec/factories/appointments.rb
1142
+ - spec/factories/attachment.rb
1143
+ - spec/factories/audits.rb
1144
+ - spec/factories/basic_schedules.rb
1145
+ - spec/factories/cards/card_definition_resources.rb
1146
+ - spec/factories/cards/card_definitions.rb
1147
+ - spec/factories/cards/card_fields.rb
1148
+ - spec/factories/cards/role_card_fields.rb
1149
+ - spec/factories/cards/role_resource_cards.rb
1150
+ - spec/factories/constant_definition.rb
1151
+ - spec/factories/contracts.rb
1152
+ - spec/factories/data_migration_models.rb
1153
+ - spec/factories/demographics.rb
1154
+ - spec/factories/events.rb
1155
+ - spec/factories/firms.rb
1156
+ - spec/factories/imports.rb
1157
+ - spec/factories/meetups.rb
1158
+ - spec/factories/organizations.rb
1159
+ - spec/factories/policies.rb
1160
+ - spec/factories/policy_notes.rb
1161
+ - spec/factories/read_only_values.rb
1162
+ - spec/factories/resources.rb
1163
+ - spec/factories/roles.rb
1164
+ - spec/factories/schedules.rb
1165
+ - spec/factories/shared/flattener/attributes.rb
1166
+ - spec/factories/shared/flattener/columns.rb
1167
+ - spec/factories/shared/flattener/resources.rb
1168
+ - spec/factories/templates.rb
1169
+ - spec/factories/user_organizations.rb
1170
+ - spec/factories/user_session.rb
1171
+ - spec/factories/users.rb
1172
+ - spec/fixtures/sample_config.yml
1173
+ - spec/graphql/has_helpers/mutations/external_data_sync_spec.rb
1174
+ - spec/graphql/has_helpers/resolvers/cards/available_cards_spec.rb
1175
+ - spec/graphql/has_helpers/resolvers/cards/card_data_spec.rb
1176
+ - spec/graphql/has_helpers/resolvers/cards/hover_card_data_spec.rb
1177
+ - spec/has_helpers/cards/cache_spec.rb
1178
+ - spec/has_helpers/cards/config_spec.rb
1179
+ - spec/has_helpers/cards/orphan_card_sweeper_spec.rb
1180
+ - spec/has_helpers/cards/remote_role_spec.rb
1181
+ - spec/has_helpers/cards/remote_roles_spec.rb
1182
+ - spec/has_helpers/cards/roles_spec.rb
1183
+ - spec/has_helpers/cards/smoke_spec.rb
1184
+ - spec/has_helpers/cards/support.rb
1185
+ - spec/has_helpers/resolvers/internal/roles_spec.rb
1186
+ - spec/has_helpers/service_trust/audit_log_cleanup_worker_spec.rb
1187
+ - spec/has_helpers/service_trust/audit_spec.rb
1188
+ - spec/has_helpers/service_trust/authenticated_as_service_spec.rb
1189
+ - spec/has_helpers/service_trust/authorization_spec.rb
1190
+ - spec/has_helpers/service_trust/capability_spec.rb
1191
+ - spec/has_helpers/service_trust/client_spec.rb
1192
+ - spec/has_helpers/service_trust/configuration_spec.rb
1193
+ - spec/has_helpers/service_trust/engine_spec.rb
1194
+ - spec/has_helpers/service_trust/errors_spec.rb
1195
+ - spec/has_helpers/service_trust/graphql_authentication_spec.rb
1196
+ - spec/has_helpers/service_trust/graphql_authorizable_spec.rb
1197
+ - spec/has_helpers/service_trust/graphql_client_spec.rb
1198
+ - spec/has_helpers/service_trust/jwks_client_spec.rb
1199
+ - spec/has_helpers/service_trust/jwks_controller_spec.rb
1200
+ - spec/has_helpers/service_trust/jwt_codec_spec.rb
1201
+ - spec/has_helpers/service_trust/key_manager_spec.rb
1202
+ - spec/has_helpers/service_trust/key_spec.rb
1203
+ - spec/has_helpers/service_trust/rake_tasks_spec.rb
1204
+ - spec/has_helpers/service_trust/rate_limiter_spec.rb
1205
+ - spec/has_helpers/service_trust/replay_cache_spec.rb
1206
+ - spec/has_helpers/service_trust/signer_verifier_spec.rb
1207
+ - spec/has_helpers/service_trust/smoke_spec.rb
1208
+ - spec/has_helpers/service_trust/support.rb
1209
+ - spec/has_helpers/service_trust/test_module_spec.rb
1210
+ - spec/has_helpers/service_trust/verify_middleware_spec.rb
1211
+ - spec/helpers/application_spec.rb
1212
+ - spec/importers/cards/importer_spec.rb
1213
+ - spec/internal/app/assets/config/manifest.js
1214
+ - spec/internal/app/constants/cat_egory.rb
1215
+ - spec/internal/app/constants/color.rb
1216
+ - spec/internal/app/constants/exclude_group_nil_constant.rb
1217
+ - spec/internal/app/constants/foo.rb
1218
+ - spec/internal/app/constants/fruit.rb
1219
+ - spec/internal/app/constants/generic_group_example.rb
1220
+ - spec/internal/app/constants/my_constant.rb
1221
+ - spec/internal/app/constants/product.rb
1222
+ - spec/internal/app/constants/shirt_size.rb
1223
+ - spec/internal/app/constants/simple_option.rb
1224
+ - spec/internal/app/constants/status.rb
1225
+ - spec/internal/app/constructors/organization_constructor.rb
1226
+ - spec/internal/app/controllers/application_controller.rb
1227
+ - spec/internal/app/controllers/search_extensions.rb
1228
+ - spec/internal/app/indices/advisor_index.rb
1229
+ - spec/internal/app/indices/contract_index.rb
1230
+ - spec/internal/app/indices/firm_index.rb
1231
+ - spec/internal/app/indices/policy_index.rb
1232
+ - spec/internal/app/models/advisor.rb
1233
+ - spec/internal/app/models/agency.rb
1234
+ - spec/internal/app/models/anonymous_coward.rb
1235
+ - spec/internal/app/models/another_event.rb
1236
+ - spec/internal/app/models/appointment.rb
1237
+ - spec/internal/app/models/attachment.rb
1238
+ - spec/internal/app/models/basic_schedule.rb
1239
+ - spec/internal/app/models/beneficiary.rb
1240
+ - spec/internal/app/models/client.rb
1241
+ - spec/internal/app/models/contract.rb
1242
+ - spec/internal/app/models/demographic.rb
1243
+ - spec/internal/app/models/division.rb
1244
+ - spec/internal/app/models/event.rb
1245
+ - spec/internal/app/models/event_template.rb
1246
+ - spec/internal/app/models/firm.rb
1247
+ - spec/internal/app/models/has_audits/audit.rb
1248
+ - spec/internal/app/models/import.rb
1249
+ - spec/internal/app/models/meetup.rb
1250
+ - spec/internal/app/models/organization.rb
1251
+ - spec/internal/app/models/organization_event.rb
1252
+ - spec/internal/app/models/policy.rb
1253
+ - spec/internal/app/models/policy_holder.rb
1254
+ - spec/internal/app/models/policy_note.rb
1255
+ - spec/internal/app/models/project.rb
1256
+ - spec/internal/app/models/read_only_value.rb
1257
+ - spec/internal/app/models/schedule.rb
1258
+ - spec/internal/app/models/template.rb
1259
+ - spec/internal/app/models/user.rb
1260
+ - spec/internal/app/models/user_organization.rb
1261
+ - spec/internal/app/views/has_lists/lists/_table.html.erb
1262
+ - spec/internal/config/database-standard.yml
1263
+ - spec/internal/config/initializers/resources.rb
1264
+ - spec/internal/config/routes.rb
1265
+ - spec/internal/config/storage.yml
1266
+ - spec/internal/db/good_job_schema.rb
1267
+ - spec/internal/db/schema.rb
1268
+ - spec/internal/log/.gitignore
1269
+ - spec/internal/public/favicon.ico
1270
+ - spec/lib/flattener/base_spec.rb
1271
+ - spec/lib/flattener/column/types_spec.rb
1272
+ - spec/lib/has_helpers/active_record/base_spec.rb
1273
+ - spec/lib/has_helpers/active_record/date_range_spec.rb
1274
+ - spec/lib/has_helpers/active_record/lookup_model_spec.rb
1275
+ - spec/lib/has_helpers/active_record/nested_resource_spec.rb
1276
+ - spec/lib/has_helpers/app/command/reports/generator_specs.rb
1277
+ - spec/lib/has_helpers/app/command_spec.rb
1278
+ - spec/lib/has_helpers/app/support/mocks/graphql_reports_helpers.rb
1279
+ - spec/lib/has_helpers/app/support/mocks/reports_api_mock.rb
1280
+ - spec/lib/has_helpers/attributes_spec.rb
1281
+ - spec/lib/has_helpers/aws_spec.rb
1282
+ - spec/lib/has_helpers/concerns/hydrate_concern_spec.rb
1283
+ - spec/lib/has_helpers/constant/definition_spec.rb
1284
+ - spec/lib/has_helpers/constant_spec.rb
1285
+ - spec/lib/has_helpers/core_ext/array_spec.rb
1286
+ - spec/lib/has_helpers/core_ext/date/infinity_spec.rb
1287
+ - spec/lib/has_helpers/core_ext/date_spec.rb
1288
+ - spec/lib/has_helpers/core_ext/false_class_spec.rb
1289
+ - spec/lib/has_helpers/core_ext/float_spec.rb
1290
+ - spec/lib/has_helpers/core_ext/hash_spec.rb
1291
+ - spec/lib/has_helpers/core_ext/integer_spec.rb
1292
+ - spec/lib/has_helpers/core_ext/nil_class_spec.rb
1293
+ - spec/lib/has_helpers/core_ext/object_spec.rb
1294
+ - spec/lib/has_helpers/core_ext/proc_spec.rb
1295
+ - spec/lib/has_helpers/core_ext/string_spec.rb
1296
+ - spec/lib/has_helpers/core_ext/true_class_spec.rb
1297
+ - spec/lib/has_helpers/data_migration/base_spec.rb
1298
+ - spec/lib/has_helpers/data_migration/large_worker_spec.rb
1299
+ - spec/lib/has_helpers/data_migration/master_worker_spec.rb
1300
+ - spec/lib/has_helpers/data_migration/migrator_spec.rb
1301
+ - spec/lib/has_helpers/data_migration/model_spec.rb
1302
+ - spec/lib/has_helpers/data_migration/small_worker_spec.rb
1303
+ - spec/lib/has_helpers/good_job/notification_alert_cleanup_worker_spec.rb
1304
+ - spec/lib/has_helpers/hash_accessors_spec.rb
1305
+ - spec/lib/has_helpers/index_spec.rb
1306
+ - spec/lib/has_helpers/lazy_config_spec.rb
1307
+ - spec/lib/has_helpers/organization_merge_spec.rb
1308
+ - spec/lib/has_helpers/resource_importer_spec.rb
1309
+ - spec/lib/has_helpers/rspec_spec.rb
1310
+ - spec/lib/has_helpers/search/provider_spec.rb
1311
+ - spec/lib/has_helpers/search/search_utils_spec.rb
1312
+ - spec/lib/has_helpers/sentry/graphql_trace_spec.rb
1313
+ - spec/lib/has_helpers/ui_attributes_spec.rb
1314
+ - spec/lib/has_helpers/utils/action_spec.rb
1315
+ - spec/lib/has_helpers/utils/alert_spec.rb
1316
+ - spec/lib/has_helpers/utils/dataset_spec.rb
1317
+ - spec/lib/has_helpers/utils/icon_spec.rb
1318
+ - spec/lib/has_helpers/utils/input_spec.rb
1319
+ - spec/lib/has_helpers/utils/log_notifier_spec.rb
1320
+ - spec/lib/has_helpers/utils/render_object_spec.rb
1321
+ - spec/lib/has_helpers/utils/s3_utils_spec.rb
1322
+ - spec/lib/has_helpers/utils/service_spec.rb
1323
+ - spec/lib/has_helpers/utils/slack_notifier_spec.rb
1324
+ - spec/lib/has_helpers/utils/user_restrictions_spec.rb
1325
+ - spec/lib/hq/structure/inserts_spec.rb
1326
+ - spec/lib/hq/structure_spec.rb
1327
+ - spec/models/cards/base_spec.rb
1328
+ - spec/models/cards/card_definition_resource_spec.rb
1329
+ - spec/models/cards/card_definition_spec.rb
1330
+ - spec/models/cards/card_field_spec.rb
1331
+ - spec/models/cards/field_builder_spec.rb
1332
+ - spec/models/cards/registry_spec.rb
1333
+ - spec/models/cards/role_card_field_spec.rb
1334
+ - spec/models/cards/role_resource_card_spec.rb
1335
+ - spec/models/has_helpers/master_record_spec.rb
1336
+ - spec/models/has_helpers/user_organization_spec.rb
1337
+ - spec/models/has_helpers/user_session_spec.rb
1338
+ - spec/presenters/base_presenter_spec.rb
1339
+ - spec/rails_helper.rb
1340
+ - spec/requests/has_helpers/factory_controller_spec.rb
1341
+ - spec/requests/has_helpers/health_check_controller_spec.rb
1342
+ - spec/scenarios/empty_setup.rb
1343
+ - spec/spec_helper.rb
1344
+ - spec/support/has_helpers/database_helpers.rb
1345
+ - spec/utils/sync_utils_spec.rb
1346
+ - spec/workers/goodjob/elasticsearch_process_batch_spec.rb
1347
+ - spec/workers/goodjob/elasticsearch_process_change_logs_master_worker_spec.rb
1348
+ - spec/workers/goodjob/elasticsearch_process_change_logs_worker_spec.rb
1349
+ - spec/workers/goodjob/elasticsearch_process_queue_spec.rb
1350
+ - spec/workers/goodjob/elasticsearch_reindex_spec.rb
1351
+ homepage: https://github.com/OneHQ/has_helpers
1352
+ licenses:
1353
+ - HQ
1354
+ metadata: {}
1355
+ rdoc_options: []
1356
+ require_paths:
1357
+ - lib
1358
+ required_ruby_version: !ruby/object:Gem::Requirement
1359
+ requirements:
1360
+ - - ">="
1361
+ - !ruby/object:Gem::Version
1362
+ version: 3.4.0
1363
+ - - "<"
1364
+ - !ruby/object:Gem::Version
1365
+ version: 4.0.0
1366
+ required_rubygems_version: !ruby/object:Gem::Requirement
1367
+ requirements:
1368
+ - - ">="
1369
+ - !ruby/object:Gem::Version
1370
+ version: '0'
1371
+ requirements: []
1372
+ rubygems_version: 3.6.7
1373
+ specification_version: 4
1374
+ summary: HelpersHQ
1375
+ test_files:
1376
+ - spec/commands/cards/available_cards_command_spec.rb
1377
+ - spec/commands/cards/card_data_command_spec.rb
1378
+ - spec/constructors/has_helpers/base_constructor_spec.rb
1379
+ - spec/controllers/has_helpers/controller_spec.rb
1380
+ - spec/controllers/has_helpers/xlsx_export_spec.rb
1381
+ - spec/factories/advisors.rb
1382
+ - spec/factories/anonymous_cowards.rb
1383
+ - spec/factories/applications.rb
1384
+ - spec/factories/appointments.rb
1385
+ - spec/factories/attachment.rb
1386
+ - spec/factories/audits.rb
1387
+ - spec/factories/basic_schedules.rb
1388
+ - spec/factories/cards/card_definition_resources.rb
1389
+ - spec/factories/cards/card_definitions.rb
1390
+ - spec/factories/cards/card_fields.rb
1391
+ - spec/factories/cards/role_card_fields.rb
1392
+ - spec/factories/cards/role_resource_cards.rb
1393
+ - spec/factories/constant_definition.rb
1394
+ - spec/factories/contracts.rb
1395
+ - spec/factories/data_migration_models.rb
1396
+ - spec/factories/demographics.rb
1397
+ - spec/factories/events.rb
1398
+ - spec/factories/firms.rb
1399
+ - spec/factories/imports.rb
1400
+ - spec/factories/meetups.rb
1401
+ - spec/factories/organizations.rb
1402
+ - spec/factories/policies.rb
1403
+ - spec/factories/policy_notes.rb
1404
+ - spec/factories/read_only_values.rb
1405
+ - spec/factories/resources.rb
1406
+ - spec/factories/roles.rb
1407
+ - spec/factories/schedules.rb
1408
+ - spec/factories/shared/flattener/attributes.rb
1409
+ - spec/factories/shared/flattener/columns.rb
1410
+ - spec/factories/shared/flattener/resources.rb
1411
+ - spec/factories/templates.rb
1412
+ - spec/factories/user_organizations.rb
1413
+ - spec/factories/user_session.rb
1414
+ - spec/factories/users.rb
1415
+ - spec/fixtures/sample_config.yml
1416
+ - spec/graphql/has_helpers/mutations/external_data_sync_spec.rb
1417
+ - spec/graphql/has_helpers/resolvers/cards/available_cards_spec.rb
1418
+ - spec/graphql/has_helpers/resolvers/cards/card_data_spec.rb
1419
+ - spec/graphql/has_helpers/resolvers/cards/hover_card_data_spec.rb
1420
+ - spec/has_helpers/cards/cache_spec.rb
1421
+ - spec/has_helpers/cards/config_spec.rb
1422
+ - spec/has_helpers/cards/orphan_card_sweeper_spec.rb
1423
+ - spec/has_helpers/cards/remote_role_spec.rb
1424
+ - spec/has_helpers/cards/remote_roles_spec.rb
1425
+ - spec/has_helpers/cards/roles_spec.rb
1426
+ - spec/has_helpers/cards/smoke_spec.rb
1427
+ - spec/has_helpers/cards/support.rb
1428
+ - spec/has_helpers/resolvers/internal/roles_spec.rb
1429
+ - spec/has_helpers/service_trust/audit_log_cleanup_worker_spec.rb
1430
+ - spec/has_helpers/service_trust/audit_spec.rb
1431
+ - spec/has_helpers/service_trust/authenticated_as_service_spec.rb
1432
+ - spec/has_helpers/service_trust/authorization_spec.rb
1433
+ - spec/has_helpers/service_trust/capability_spec.rb
1434
+ - spec/has_helpers/service_trust/client_spec.rb
1435
+ - spec/has_helpers/service_trust/configuration_spec.rb
1436
+ - spec/has_helpers/service_trust/engine_spec.rb
1437
+ - spec/has_helpers/service_trust/errors_spec.rb
1438
+ - spec/has_helpers/service_trust/graphql_authentication_spec.rb
1439
+ - spec/has_helpers/service_trust/graphql_authorizable_spec.rb
1440
+ - spec/has_helpers/service_trust/graphql_client_spec.rb
1441
+ - spec/has_helpers/service_trust/jwks_client_spec.rb
1442
+ - spec/has_helpers/service_trust/jwks_controller_spec.rb
1443
+ - spec/has_helpers/service_trust/jwt_codec_spec.rb
1444
+ - spec/has_helpers/service_trust/key_manager_spec.rb
1445
+ - spec/has_helpers/service_trust/key_spec.rb
1446
+ - spec/has_helpers/service_trust/rake_tasks_spec.rb
1447
+ - spec/has_helpers/service_trust/rate_limiter_spec.rb
1448
+ - spec/has_helpers/service_trust/replay_cache_spec.rb
1449
+ - spec/has_helpers/service_trust/signer_verifier_spec.rb
1450
+ - spec/has_helpers/service_trust/smoke_spec.rb
1451
+ - spec/has_helpers/service_trust/support.rb
1452
+ - spec/has_helpers/service_trust/test_module_spec.rb
1453
+ - spec/has_helpers/service_trust/verify_middleware_spec.rb
1454
+ - spec/helpers/application_spec.rb
1455
+ - spec/importers/cards/importer_spec.rb
1456
+ - spec/internal/app/assets/config/manifest.js
1457
+ - spec/internal/app/constants/cat_egory.rb
1458
+ - spec/internal/app/constants/color.rb
1459
+ - spec/internal/app/constants/exclude_group_nil_constant.rb
1460
+ - spec/internal/app/constants/foo.rb
1461
+ - spec/internal/app/constants/fruit.rb
1462
+ - spec/internal/app/constants/generic_group_example.rb
1463
+ - spec/internal/app/constants/my_constant.rb
1464
+ - spec/internal/app/constants/product.rb
1465
+ - spec/internal/app/constants/shirt_size.rb
1466
+ - spec/internal/app/constants/simple_option.rb
1467
+ - spec/internal/app/constants/status.rb
1468
+ - spec/internal/app/constructors/organization_constructor.rb
1469
+ - spec/internal/app/controllers/application_controller.rb
1470
+ - spec/internal/app/controllers/search_extensions.rb
1471
+ - spec/internal/app/indices/advisor_index.rb
1472
+ - spec/internal/app/indices/contract_index.rb
1473
+ - spec/internal/app/indices/firm_index.rb
1474
+ - spec/internal/app/indices/policy_index.rb
1475
+ - spec/internal/app/models/advisor.rb
1476
+ - spec/internal/app/models/agency.rb
1477
+ - spec/internal/app/models/anonymous_coward.rb
1478
+ - spec/internal/app/models/another_event.rb
1479
+ - spec/internal/app/models/appointment.rb
1480
+ - spec/internal/app/models/attachment.rb
1481
+ - spec/internal/app/models/basic_schedule.rb
1482
+ - spec/internal/app/models/beneficiary.rb
1483
+ - spec/internal/app/models/client.rb
1484
+ - spec/internal/app/models/contract.rb
1485
+ - spec/internal/app/models/demographic.rb
1486
+ - spec/internal/app/models/division.rb
1487
+ - spec/internal/app/models/event.rb
1488
+ - spec/internal/app/models/event_template.rb
1489
+ - spec/internal/app/models/firm.rb
1490
+ - spec/internal/app/models/has_audits/audit.rb
1491
+ - spec/internal/app/models/import.rb
1492
+ - spec/internal/app/models/meetup.rb
1493
+ - spec/internal/app/models/organization.rb
1494
+ - spec/internal/app/models/organization_event.rb
1495
+ - spec/internal/app/models/policy.rb
1496
+ - spec/internal/app/models/policy_holder.rb
1497
+ - spec/internal/app/models/policy_note.rb
1498
+ - spec/internal/app/models/project.rb
1499
+ - spec/internal/app/models/read_only_value.rb
1500
+ - spec/internal/app/models/schedule.rb
1501
+ - spec/internal/app/models/template.rb
1502
+ - spec/internal/app/models/user.rb
1503
+ - spec/internal/app/models/user_organization.rb
1504
+ - spec/internal/app/views/has_lists/lists/_table.html.erb
1505
+ - spec/internal/config/database-standard.yml
1506
+ - spec/internal/config/initializers/resources.rb
1507
+ - spec/internal/config/routes.rb
1508
+ - spec/internal/config/storage.yml
1509
+ - spec/internal/db/good_job_schema.rb
1510
+ - spec/internal/db/schema.rb
1511
+ - spec/internal/log/.gitignore
1512
+ - spec/internal/public/favicon.ico
1513
+ - spec/lib/flattener/base_spec.rb
1514
+ - spec/lib/flattener/column/types_spec.rb
1515
+ - spec/lib/has_helpers/active_record/base_spec.rb
1516
+ - spec/lib/has_helpers/active_record/date_range_spec.rb
1517
+ - spec/lib/has_helpers/active_record/lookup_model_spec.rb
1518
+ - spec/lib/has_helpers/active_record/nested_resource_spec.rb
1519
+ - spec/lib/has_helpers/app/command/reports/generator_specs.rb
1520
+ - spec/lib/has_helpers/app/command_spec.rb
1521
+ - spec/lib/has_helpers/app/support/mocks/graphql_reports_helpers.rb
1522
+ - spec/lib/has_helpers/app/support/mocks/reports_api_mock.rb
1523
+ - spec/lib/has_helpers/attributes_spec.rb
1524
+ - spec/lib/has_helpers/aws_spec.rb
1525
+ - spec/lib/has_helpers/concerns/hydrate_concern_spec.rb
1526
+ - spec/lib/has_helpers/constant/definition_spec.rb
1527
+ - spec/lib/has_helpers/constant_spec.rb
1528
+ - spec/lib/has_helpers/core_ext/array_spec.rb
1529
+ - spec/lib/has_helpers/core_ext/date/infinity_spec.rb
1530
+ - spec/lib/has_helpers/core_ext/date_spec.rb
1531
+ - spec/lib/has_helpers/core_ext/false_class_spec.rb
1532
+ - spec/lib/has_helpers/core_ext/float_spec.rb
1533
+ - spec/lib/has_helpers/core_ext/hash_spec.rb
1534
+ - spec/lib/has_helpers/core_ext/integer_spec.rb
1535
+ - spec/lib/has_helpers/core_ext/nil_class_spec.rb
1536
+ - spec/lib/has_helpers/core_ext/object_spec.rb
1537
+ - spec/lib/has_helpers/core_ext/proc_spec.rb
1538
+ - spec/lib/has_helpers/core_ext/string_spec.rb
1539
+ - spec/lib/has_helpers/core_ext/true_class_spec.rb
1540
+ - spec/lib/has_helpers/data_migration/base_spec.rb
1541
+ - spec/lib/has_helpers/data_migration/large_worker_spec.rb
1542
+ - spec/lib/has_helpers/data_migration/master_worker_spec.rb
1543
+ - spec/lib/has_helpers/data_migration/migrator_spec.rb
1544
+ - spec/lib/has_helpers/data_migration/model_spec.rb
1545
+ - spec/lib/has_helpers/data_migration/small_worker_spec.rb
1546
+ - spec/lib/has_helpers/good_job/notification_alert_cleanup_worker_spec.rb
1547
+ - spec/lib/has_helpers/hash_accessors_spec.rb
1548
+ - spec/lib/has_helpers/index_spec.rb
1549
+ - spec/lib/has_helpers/lazy_config_spec.rb
1550
+ - spec/lib/has_helpers/organization_merge_spec.rb
1551
+ - spec/lib/has_helpers/resource_importer_spec.rb
1552
+ - spec/lib/has_helpers/rspec_spec.rb
1553
+ - spec/lib/has_helpers/search/provider_spec.rb
1554
+ - spec/lib/has_helpers/search/search_utils_spec.rb
1555
+ - spec/lib/has_helpers/sentry/graphql_trace_spec.rb
1556
+ - spec/lib/has_helpers/ui_attributes_spec.rb
1557
+ - spec/lib/has_helpers/utils/action_spec.rb
1558
+ - spec/lib/has_helpers/utils/alert_spec.rb
1559
+ - spec/lib/has_helpers/utils/dataset_spec.rb
1560
+ - spec/lib/has_helpers/utils/icon_spec.rb
1561
+ - spec/lib/has_helpers/utils/input_spec.rb
1562
+ - spec/lib/has_helpers/utils/log_notifier_spec.rb
1563
+ - spec/lib/has_helpers/utils/render_object_spec.rb
1564
+ - spec/lib/has_helpers/utils/s3_utils_spec.rb
1565
+ - spec/lib/has_helpers/utils/service_spec.rb
1566
+ - spec/lib/has_helpers/utils/slack_notifier_spec.rb
1567
+ - spec/lib/has_helpers/utils/user_restrictions_spec.rb
1568
+ - spec/lib/hq/structure/inserts_spec.rb
1569
+ - spec/lib/hq/structure_spec.rb
1570
+ - spec/models/cards/base_spec.rb
1571
+ - spec/models/cards/card_definition_resource_spec.rb
1572
+ - spec/models/cards/card_definition_spec.rb
1573
+ - spec/models/cards/card_field_spec.rb
1574
+ - spec/models/cards/field_builder_spec.rb
1575
+ - spec/models/cards/registry_spec.rb
1576
+ - spec/models/cards/role_card_field_spec.rb
1577
+ - spec/models/cards/role_resource_card_spec.rb
1578
+ - spec/models/has_helpers/master_record_spec.rb
1579
+ - spec/models/has_helpers/user_organization_spec.rb
1580
+ - spec/models/has_helpers/user_session_spec.rb
1581
+ - spec/presenters/base_presenter_spec.rb
1582
+ - spec/rails_helper.rb
1583
+ - spec/requests/has_helpers/factory_controller_spec.rb
1584
+ - spec/requests/has_helpers/health_check_controller_spec.rb
1585
+ - spec/scenarios/empty_setup.rb
1586
+ - spec/spec_helper.rb
1587
+ - spec/support/has_helpers/database_helpers.rb
1588
+ - spec/utils/sync_utils_spec.rb
1589
+ - spec/workers/goodjob/elasticsearch_process_batch_spec.rb
1590
+ - spec/workers/goodjob/elasticsearch_process_change_logs_master_worker_spec.rb
1591
+ - spec/workers/goodjob/elasticsearch_process_change_logs_worker_spec.rb
1592
+ - spec/workers/goodjob/elasticsearch_process_queue_spec.rb
1593
+ - spec/workers/goodjob/elasticsearch_reindex_spec.rb