Martin
dbcf21a555
feat(archive): extract archive status management within job to simplify the main service as well as to isolate this part for a merge with exports csv/xslx [maybe?]
...
Update app/dashboards/archive_dashboard.rb
Co-authored-by: LeSim <mail@simon.lehericey.net>
2022-03-31 13:35:49 +02:00
LeSim
fdc4e5bfbc
Merge pull request #6928 from adullact/feature/6886-watermark-url
...
Watermark depuis une URL distante
2022-02-08 11:45:26 +01:00
Paul Chavard
0268511264
fix(manager): remove admins added for a day
...
fix #6855
2022-02-08 11:18:44 +01:00
Jon
88d3a6e4c3
feat: can have remote watemark file
2022-02-04 18:55:16 +01:00
Paul Chavard
403e71b41f
feat(procedure): only purge procedures without dossiers
2022-01-18 11:22:04 +01:00
simon lehericey
f0b0e7fd9a
Switch to usage of zip unix binary to create archive. Also use a dedicated queue for DelayedJob
...
use dedicated archives queue
As the used disk space will increase, we want a fined grain control
move zip logic in dedicated method
zip
wip
wip
fix(spec): pass spec in green
tech(improvements): avoid File.delete(folder), favor FileUtils.remove_entry_secure which is safer. Also wrap most of code that open file within blocks so it is cleaned when the block ends. Lastly use attachement.download to avoid big memory pressure [download in chunk, write in chunk] otherwise big file [124>1GO] are loaded in memory. what if we run multiple jobs/download in parallel ?
fix(spec): try to retry with grace
clean(procedure_archive_service_spec.rb): better retry [avoid to rewrite on open file]
lint(things): everything
2021-12-13 16:37:04 +01:00
kara Diaby
9ee9389ba1
add the good retry_on StaleObjectError
2021-11-05 13:32:21 +01:00
Paul Chavard
d5d3995dad
fix(dossier): fix dossier.avis cascade
2021-10-26 11:16:29 +02:00
Paul Chavard
1561ea82f6
fix(transfer): manually nullify staled transfers references
2021-10-21 13:54:26 +02:00
Paul Chavard
2a3a9dd822
feat(revisions): rebase dossiers brouillons
2021-10-20 17:26:09 +02:00
Paul Chavard
4a947f9135
feat(manager): add become administrateur button in manager (with 24h expiration)
2021-10-07 11:32:12 +02:00
simon lehericey
e4484eb6d9
discard expert not found job error
2021-10-04 12:57:37 +02:00
Paul Chavard
5985755229
feat(dossier): add purge stale dossier transfers job
2021-09-08 14:39:46 +02:00
Christophe Robillard
ddea0b9a45
purge old sendinblue mails
2021-08-20 08:52:39 +02:00
Paul Chavard
ffa8c0c80a
feat(dossiers): enable dossiers termine expiration behind feature flag
...
feature flag "procedure_process_expired_dossiers_termine" controls if a procedure has expiration
enabled on dossiers termine
re #3796
2021-08-18 16:11:35 +01:00
Christophe Robillard
66cc0dd08d
Revert "Revert "Expose dossier PDF export as IO""
...
This reverts commit 362093eff0
.
2021-06-24 21:01:59 +02:00
krichtof
362093eff0
Revert "Expose dossier PDF export as IO"
2021-06-24 19:21:37 +02:00
Paul Chavard
48dca8bad1
Execute AchiveCreationJob in exports queue
...
Co-authored-by: Christophe Robillard <christophe.robillard@beta.gouv.fr>
2021-06-24 17:49:58 +02:00
Christophe Robillard
f40d96fbd2
Revert "Revert "Export de tous les dossier d'une démarche""
...
This reverts commit d9a588b52e
.
2021-04-29 17:29:47 +02:00
krichtof
d9a588b52e
Revert "Export de tous les dossier d'une démarche"
2021-04-29 16:07:18 +02:00
Pierre de La Morinerie
684af77e35
jobs: extract an RetryOnTranscientErrors
concern
2021-04-29 14:08:12 +02:00
Christophe Robillard
aa407d5607
place le cronjob PurgeStaleArchives dans le bon répertoire
2021-04-28 11:40:58 +02:00
Christophe Robillard
8bee53fe77
rend plus robuste la création de l'archive
2021-04-28 11:40:58 +02:00
Christophe Robillard
609a1aa45b
add archive creation and purge archives jobs
2021-04-28 11:40:58 +02:00
simon lehericey
e636e3a752
add merge_and_update_metadata method
2021-04-06 18:11:26 +02:00
simon lehericey
d552e364fc
retry 5 times on integrity error and then block processing
2021-04-06 18:03:39 +02:00
Pierre de La Morinerie
75a1046315
active_storage: refactor concerns
...
Follow-up of #5953 .
Refactor the concerns with two goals:
- Getting closer from the way ActiveStorage adds its own hooks.
Usually ActiveStorage does this using an `Attachment#after_create`
hook, which then delegates to the blob to enqueue the job.
- Enqueuing each job only once. By hooking on `Attachment#after_create`,
we guarantee each job will be added only once.
We then let the jobs themselves check if they are relevant or not, and
retry or discard themselves if necessary.
We also need to update the tests a bit, because Rails'
`perform_enqueued_jobs(&block)` test helper doesn't honor the `retry_on`
clause of jobs. Instead it forwards the exception to the caller – which
makes the test fail.
Instead we use the inline version of `perform_enqueued_jobs()`, without
a block, which properly ignores errors catched by retry_on.
2021-03-16 11:49:14 +01:00
Pierre de La Morinerie
08094e5384
jobs: retry on ActiveStorage::IntegrityError during virus scan
...
This is the same setting than what ActiveStorage::AnalyzeJob uses.
2021-03-16 10:52:12 +01:00
Paul Chavard
d24ee27cac
Try to reduce the number of external data fetches
...
Only fetch external data if the external_id is the current one and data is not yet fetched
2021-03-11 14:56:37 +01:00
Paul Chavard
21d5da379f
remove unused job
2021-03-11 14:56:37 +01:00
Paul Chavard
7eee14feef
Add ChampFetchExternalDataJob
2021-02-17 19:10:16 +01:00
Pierre de La Morinerie
150ddab660
zeitwerk: Api -> API
2021-02-09 13:07:30 +01:00
Paul Chavard
9156754cf6
After maximum ammount of retries discard the job and log exception
2021-02-05 18:56:27 +01:00
Paul Chavard
41c3a98d7d
Update Raven references to use Sentry
2021-01-28 19:46:36 +01:00
Paul Chavard
0633d43868
Stop crashing if attachment can not be watermarked and mark blob as invalid
2021-01-27 16:49:09 +01:00
simon lehericey
650a598698
ensure a buggy procedure does not block the others from being closed
2021-01-19 10:42:16 +01:00
Paul Chavard
97ce8f312b
Use external_id to fetch annuaire_education data
2021-01-15 11:50:02 +01:00
Paul Chavard
5c9f2e8783
Add api education adapter and job
2021-01-14 17:57:48 +01:00
simon lehericey
1348b883e3
Add cron to complete missing analysis
2020-12-17 11:05:33 +01:00
kara Diaby
f3c4040d2d
add grace period to deleted dossiers
2020-12-16 15:00:26 +01:00
Paul Chavard
3c6e30a326
Show titre identite link only once watermark is added
2020-12-10 16:50:03 +01:00
clemkeirua
513d4f6ff1
move all the cron jobs in a dedicated directory
2020-12-08 13:22:43 +00:00
simon lehericey
b187244a29
extract and refactor api errors
2020-12-04 17:07:30 +01:00
simon lehericey
46c355beb2
Add comments
2020-12-03 11:52:01 +01:00
simon lehericey
f56235c7ee
retry exponentially on api entreprise timeout
2020-12-03 11:52:01 +01:00
simon lehericey
9eab310565
[ #5675 ] for all api entreprise job, retry on 502, 503
2020-12-02 18:25:31 +01:00
Paul Chavard
18dfacb933
Make watermark configurable
2020-11-25 16:19:06 +01:00
Paul Chavard
371179dc5b
Watermark titres identite
2020-11-25 16:19:06 +01:00
simon lehericey
c563956a9f
retry each day during 5 days to fetch attestation social
2020-10-28 15:53:58 +00:00
simon lehericey
ad01d4dee5
really faster stats by precomputing some of them
2020-10-06 16:12:01 +02:00
clemkeirua
245e9e59c7
do not run ApiEntreprise jobs on missing etablissements
2020-09-28 17:36:38 +02:00
Paul Chavard
dea78c49f6
Run jobs in named queues
2020-09-23 08:22:17 +02:00
simon lehericey
5459c2fa7f
Fix uninitialized excon constant
2020-09-08 18:36:24 +02:00
Pierre de La Morinerie
292dc84eb4
jobs: ignore deleted file in Virus Scan
...
We have errors in production where the job starts correctly (i.e. the
blob exists), but `blob.open` fails with a `ActiveStorage::FileNotFound`
error.
When checking later in production, the blob has been deleted.
This points to the blob (and the file) being deleted during the virus
scan job.
In that case, ignore the error (rather than retrying the job).
2020-09-03 11:00:59 +02:00
simon lehericey
49aa426d1b
application job swallow BadRequest error and retry
2020-09-02 16:59:54 +02:00
Paul Chavard
5ceae8235b
Ignore type_de_champ procedure_id
2020-09-02 11:26:26 +02:00
Paul Chavard
ec72fdd164
Remove migration service
2020-09-02 11:26:26 +02:00
Pierre de La Morinerie
3c91cfc83c
jobs: add health-related keywords to dubious procedures scanner
...
We are not certified for hosting health-related data yet.
2020-08-25 12:04:10 +00:00
Christophe Robillard
f2dcb61521
transform job in task for set dossiers_last_updated_at
2020-08-12 16:10:15 +02:00
Pierre de La Morinerie
54a4db1c47
config: flip config.active_storage.queues
...
ActiveStorage jobs are now moved to their own queue.
For consistency, we also move our own analysis jobs (VirusScannerJob)
on the same `:active_storage_analysis` queue.
2020-08-05 16:48:36 +02:00
clemkeirua
952a43058f
last_commentaire_updated_at does not take system email into account
2020-07-30 11:52:41 +02:00
clemkeirua
153c6aebd7
add temp job to set last_updated_at_* values for dossier
...
Co-authored-by: Christophe Robillard <christophe.robillard@beta.gouv.fr>
2020-07-30 10:31:14 +02:00
Paul Chavard
bb5a90da76
fix active_revision_id -> active_revision.id
2020-07-23 15:07:25 +02:00
Paul Chavard
7d421d471c
Fix revision migration job
2020-07-23 09:56:34 +02:00
Paul Chavard
bc09b61684
Add migration service and task
2020-07-21 19:35:30 +02:00
Pierre de La Morinerie
7a67f1a802
jobs: ignore missing blob during virus scan
...
We currently have many failed VirusScannerJob enqueued, because the
underlying blob is missing.
This PR fixes the issue by discarding the job in those cases (because if
the blob is gone, the job is never going to succeed).
The implementation is based on a similar issue encoutered by the
ActiveStorage::AnalyzeJob. See 06f8baf73c
2020-07-13 14:35:41 +02:00
Christophe Robillard
d20d91bc07
no sentry reporting for api-entreprise
2020-07-08 17:58:33 +02:00
Christophe Robillard
954d41ce4e
fetch effectifs mensuels for may month
2020-06-24 10:23:00 +02:00
Paul Chavard
e89f0846bb
Fix job max attempts
2020-06-16 15:57:18 +02:00
Christophe Robillard
f8b170836c
report to sentry for BadFormatRequest and ResourceNotFound exceptions
2020-06-11 23:09:50 +02:00
Christophe Robillard
b90513f456
no sentry report when error 400 for exercices
2020-06-11 18:16:19 +02:00
Paul Chavard
c4896b45ad
Prepare to remove dossier procedure_id
2020-06-11 16:13:44 +02:00
Christophe Robillard
8df9ae3a8d
ask only effectifs for april
2020-06-10 17:41:13 +02:00
Christophe Robillard
6535324ae9
ask effectifs only for 2020/02
2020-06-04 09:18:01 +02:00
Christophe Robillard
705487dab6
define max_attempts for jobs
2020-06-02 20:21:11 +02:00
Christophe Robillard
8c66b2cab1
rescue ResourceNotFound and BadFormatRequest errors
...
we don't have to retry this kind of errors, but just to send it to
sentry
2020-05-20 11:09:54 +02:00
Christophe Robillard
f4ebb5d107
create api_entreprise jobs
2020-05-20 11:09:54 +02:00
Paul Chavard
fcd136c566
Enable deletion of expired dossiers en_construction
...
fix #4977
2020-04-21 10:41:54 +02:00
Paul Chavard
61eaca928f
remove WarnExpiringDossiersJob
2020-04-09 11:11:51 +02:00
Paul Chavard
6dc1f3e2c4
Use human readable expressions instead of cron gibberish
...
https://github.com/floraison/fugit#fugitnat
2020-04-07 12:44:58 +02:00
Paul Chavard
58c126308c
Add DiscardedProceduresDeletionJob job
2020-03-31 17:08:28 +02:00
Paul Chavard
742cc15209
Use base CronJob
2020-03-31 12:25:46 +02:00
Paul Chavard
5005c54891
Add base cron job
2020-03-31 12:25:46 +02:00
Paul Chavard
33bf2fe109
remove deprecated AutoReceiveDossiersForProcedureJob
2020-03-31 12:25:46 +02:00
Paul Chavard
39c47c21cf
Remove explicit queue_as :default
2020-03-31 12:01:42 +02:00
Paul Chavard
c086f6d580
Add a job to remove discarded dossiers
2020-03-25 17:28:25 +01:00
maatinito
a4ba48fbce
#4807 separate job
2020-03-24 16:46:24 -10:00
simon lehericey
969d5625c8
fix missing rename
2020-03-20 22:28:52 +01:00
Paul Chavard
85580ce34e
rename SeekAndDestroyExpiredDossiersJob to ExpiredDossiersDeletionJob
2020-03-18 15:25:02 +01:00
Paul Chavard
6a5a83d555
update WarnExpiringDossiersJob to use new scope
2020-03-18 15:25:02 +01:00
Paul Chavard
b7051da278
Remove old export code
2020-02-19 18:19:17 +01:00
simon lehericey
2ee559c748
Fix typo in purges_stale_exports_job filename
2019-12-18 13:35:04 +01:00
simon lehericey
ce7ab89934
Add purge stale export job
2019-12-18 13:13:15 +01:00
simon lehericey
d0939ae1a4
Add Export Model
2019-12-18 13:13:15 +01:00
simon lehericey
508ba8f116
Add seek_and_destroy_expired_dossier
2019-12-03 17:18:53 +01:00
Paul Chavard
7b947feae4
Rename demarche archivée to demarche close
2019-11-28 15:07:16 +01:00
maatinito
14bc2b99b9
auto-archive badly occurs in UTC time and not in local time (1 hour too late in France, 10 hours before in Tahiti ;-)
2019-11-25 14:39:42 +01:00
clemkeirua
cb5f922bb6
cleanup the queue flag during cleanup job
2019-10-24 16:27:10 +02:00
clemkeirua
ec78c99a2a
ajout d'un job de suppression des vieux exports
2019-10-22 15:23:49 +02:00
clemkeirua
43424e4f4e
merge with the work of paul, using 3 links
2019-10-22 09:51:14 +02:00
clemkeirua
70ea5e167e
procedure download is performed through a controller in order not to leak the URL
2019-10-22 09:50:58 +02:00
clemkeirua
1af2b63ed1
initial implementation of async export
2019-10-22 09:50:58 +02:00
simon lehericey
e3e6bc7689
! NEED JOB REBOOT Move remind activation logic to user
2019-08-14 16:34:50 +02:00
simon lehericey
3fde2a6f70
Rename gestionnaire in code to instructeur
2019-08-12 13:47:01 +02:00
simon lehericey
6902f84b85
Brutally rename gestionnaire filename to instructeur
2019-08-12 13:47:01 +02:00
Paul Chavard
6cfad01d12
Stop using Flipflop as switch for weekly_overview
2019-07-31 15:15:09 +02:00
Paul Chavard
46c1bbbc6f
Official support for declarative demarches
2019-07-02 14:12:26 +02:00
Nicolas Bouilleaud
3fee1c7644
Fix UpdateAdministrateurUsageStatisticsJob not being properly scheduled
2019-07-01 11:14:26 +02:00
Nicolas Bouilleaud
925edb01c7
Add OperationsSignatureJob
2019-06-17 16:16:28 +02:00
Paul Chavard
f833f57e45
Add PurgeUnattachedBlobsJob
2019-05-21 14:05:33 +02:00
Paul Chavard
f113d108c9
Save virus scan status to blob metadata
2019-05-02 15:58:09 +02:00
Pierre de La Morinerie
e06e32238c
api_entreprise: display a specific error message on network errors
2019-05-02 11:24:38 +02:00
simon lehericey
9b4d9dc26c
[ fix #1449 ] Notification: add job
2019-03-18 16:37:51 +01:00
Frederic Merizen
f9a4369a54
Compute administrator usage statistics every night
2019-03-08 16:33:28 +01:00
simon lehericey
99bfd19b41
[ fix #3268 ] Jobs: use automatic_operation
2019-01-16 17:20:12 +01:00
gregoirenovel
0336ecf639
Remove useless arguments from some methods
2019-01-03 10:53:50 +01:00
Paul Chavard
0f0ca2ec65
Lod dossier operations
2018-11-27 12:49:40 +01:00
Paul Chavard
98d388b64d
Use state change methods on dossier in dossier auto archive job
2018-11-27 12:49:40 +01:00
Paul Chavard
b5b6832be8
Use state change methods on dossier in dossier auto recieve job
2018-11-27 12:49:40 +01:00
simon lehericey
2238e5bd9f
Time.now => Time.zone.now
2018-10-26 10:10:20 +00:00
simon lehericey
13ffa61435
DateTime.now => Time.zone.now
2018-10-26 10:10:20 +00:00
gregoirenovel
d9d4f6fe20
Enable Style/SymbolProc
2018-10-03 12:15:48 +02:00
Frederic Merizen
40bc6208f0
[ Fix #2550 ] Also send mail notification when accepting dossier
2018-09-25 15:57:07 +02:00
Frederic Merizen
7631bde16a
[ #2550 ] Generate attestation on auto-accepted dossier
2018-09-25 15:53:57 +02:00
Frederic Merizen
ac82a72dcc
[ #1946 ] Monthly expiring dossiers summary mail
2018-09-20 17:44:31 +02:00
gregoirenovel
4b071ecf06
Use enum to the fullest with Dossier.states
2018-08-29 17:31:08 +02:00
gregoirenovel
2d3b553e4d
Use enum to the fullest with TypeDeChamp.type_champs
2018-08-29 17:31:08 +02:00
gregoirenovel
606b56033a
Use enum to the fullest with VirusScan.statuses
2018-08-29 17:31:08 +02:00
Mathieu Magnin
cd4615b10d
When a new PJ is uploaded enqueue a anti virus scan job
2018-06-12 15:12:39 +02:00
gregoirenovel
346b32fbd4
[ Fix #1736 ] Assign the deal and person to the person who accepted them
2018-06-07 16:04:15 +02:00
simon lehericey
126c2f2687
DubiousProcedure: update forbidden words
2018-05-31 13:52:33 +02:00
simon lehericey
47cc0180bd
DubiousProcedure: change forbidden keywords
2018-05-30 14:21:35 +02:00
Frederic Merizen
07b1c147d9
[ Fix #1972 ] Always send mails asynchronously
2018-05-28 12:02:13 +02:00
gregoirenovel
a3fd271b00
Remove legacy
...
Update EtablissementUpdateJob
2018-05-24 17:54:51 +02:00
Paul Chavard
6b683cc491
procedure AASM derived state
2018-05-23 16:31:27 +02:00
Mathieu Magnin
7f4e6eae6b
No dubious proc. email == Everything is ok || Something went wrong. We should always send dubious procedure email.
2018-05-07 12:24:05 +02:00
Mathieu Magnin
dcdd431bc0
[ Fix #1907 ] set activation reminder delay to 3 days to allow administrateurs to activate their account with the original message after the weekend
2018-05-04 14:23:05 +02:00
Mathieu Magnin
a2bbf1b4d6
[ Fix #1907 ] A new token should be regenerated, because the one in db is encrypted
2018-05-04 14:23:05 +02:00
Paul Chavard
45019ce75c
Use Flipflop instead of Feature
2018-04-18 16:51:21 +02:00
gregoirenovel
09e0144f30
Bump gems
...
- apipie-rails
- brakeman
- byebug
- rubocop
- turbolinks
- skylight
- chartkick
- devise
- dotenv-rails
- uglifier
- web-console
- font-awesome-rails
- pg
- deep_cloneable
- delayed_job_active_record
2018-04-17 17:24:10 +02:00
gregoirenovel
be672e19bc
ApiEntrepriseService #fetch -> #get_etablissement_params_for_siret
2018-04-10 12:26:06 +02:00
gregoirenovel
ace8441ec7
SIRETService -> ApiEntrepriseService
2018-04-10 12:24:49 +02:00
Mathieu Magnin
f6d53be873
[ Fix #1799 ] Send automatic emails to improve administrateur activation
2018-04-09 11:08:13 +02:00
Paul Chavard
27592ae072
Add simple web hooks to procedures
2018-04-09 11:02:24 +02:00
gregoirenovel
4c24c8346a
Use better names for PipedriveService methods
2018-04-09 09:54:11 +02:00
Paul Chavard
d71aabd291
Job to fetch missing etablissement
2018-04-05 14:52:29 +02:00
simon lehericey
d0431a28f2
Pipedrive: manager can refuse a deal
2018-03-27 15:56:28 +02:00
simon lehericey
6a74aaa42a
[ fix #1697 ] Pipedrive: use a job to process an admin creation
2018-03-27 14:52:39 +02:00
simon lehericey
c94d57db79
AutoReceivedDossiersForProcedure: fix job by changing symbole to string
2018-02-23 15:18:32 +01:00
Mathieu Magnin
1bc93b7235
[ Fix #1456 ] When job crashed notify Sentry
2018-02-22 10:28:24 +01:00
Mathieu Magnin
0c6aa42f55
[ Fix #1454 ] Send weekly overview emails async, overview param is not correctly serialized by activejob so it is computed again when email is send
2018-02-21 18:22:56 +01:00
Paul Chavard
49bb4f0b54
Set processed_at
on auto received dossiers
...
Closes #1089
2018-02-21 16:38:25 +01:00
gregoirenovel
80ed589a17
Use string interpolation
2018-01-16 11:08:57 +01:00
gregoirenovel
08ed400ec2
Enable the Layout/FirstArrayElementLineBreak cop
2018-01-15 22:14:38 +01:00
simon lehericey
2bc61f9f3f
[ fix #1097 ] Accent insensitive search
2018-01-09 10:29:54 +01:00
simon lehericey
6a2b575027
[ fix #1097 ] Add whitelist mechanisme to procedure
2018-01-09 10:29:54 +01:00
simon lehericey
f1b7a03b63
[ fix #1097 ] Add job to monitor procedures
2018-01-09 10:29:54 +01:00
Simon Lehericey
4be6cb9126
Dossier: delete state_nouveaux which is similar to en_construction
2017-12-15 17:37:30 +01:00
LeSim
3dda27b281
[ fix #504 ] Dossier: received -> en_instruction
2017-12-15 12:10:54 +01:00
Simon Lehericey
77907b66d7
[ fix #1053 ] An Administrateur can choose the final dossier states
...
! before going to production :
- stopping the current AutoReceiveJob
- relaunch the jobs with previous id and state = 'received'
2017-12-11 16:34:00 +01:00
Mathieu Magnin
c5487657db
Create a Job that receive automatically each new dossier from a specific procedure
2017-10-06 17:49:31 +02:00
gregoirenovel
0006d42874
Move the jobs logging handling in ApplicationJob
2017-10-05 15:42:48 +02:00
gregoirenovel
51f57d983e
Use ActiveJob
2017-10-05 15:42:48 +02:00
Xavier J
f98bb90f08
Bootstrap Action Cable and Unicorn
2016-12-22 21:49:31 +01:00