1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-11 01:12:41 +01:00
phorge-phorge/src/applications
epriestley 08a4225437 Provide "bin/files integrity" for debugging, maintaining and backfilling integrity hashes
Summary:
Ref T12470. Provides an "integrity" utility which runs in these modes:

  - Verify: check that hashes match.
  - Compute: backfill missing hashes.
  - Strip: remove hashes. Useful for upgrading across a hash change.
  - Corrupt: intentionally corrupt hashes. Useful for debugging.
  - Overwrite: force hash recomputation.

Users normally shouldn't need to run any of this stuff, but this provides a reasonable toolkit for managing integrity hashes.

I'll recommend existing installs use `bin/files integrity --compute all` in the upgrade guidance to backfill hashes for existing files.

Test Plan:
  - Ran the script in many modes against various files, saw expected operation, including:
  - Verified a file, corrupted it, saw it fail.
  - Verified a file, stripped it, saw it have no hash.
  - Stripped a file, computed it, got a clean verify.
  - Stripped a file, overwrote it, got a clean verify.
  - Corrupted a file, overwrote it, got a clean verify.
  - Overwrote a file, overwrote again, got a no-op.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12470

Differential Revision: https://secure.phabricator.com/D17629
2017-04-06 15:42:43 -07:00
..
almanac Cache Almanac URIs for repositories 2016-12-06 09:14:45 -08:00
aphlict Discard stdout/stderr from the aphlict subprocess when running in daemon (normal) mode 2016-11-13 16:43:42 -08:00
arcanist/conduit
audit Restrict Audit buckets to just ApplicationSearch views 2017-03-23 12:46:19 -07:00
auth Remove PhabricatorFile::buildFromFileDataOrHash() 2017-04-04 16:18:00 -07:00
badges Move Files to ModularTransactions 2017-04-04 10:25:05 -07:00
base Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
cache With APCu 5+, use apcu_* function to examine cache state 2017-01-12 15:59:44 -08:00
calendar When destroying Calendar events, destroy invitees and notifications 2017-03-24 09:21:13 -07:00
celerity Add a "Red/Green Colorblind" accessibility mode, make all web UIs and email respect it 2017-02-23 10:57:39 -08:00
chatlog Remove empty implementations of describeAutomaticCapabilities() 2016-11-09 15:24:22 -08:00
conduit Provide a hint that submitting a Conduit call shows you how to encode particular parameters 2017-03-24 13:15:03 -07:00
config Rename "ElasticSearch" filenames to "Elasticsearch" (2/2) 2017-04-02 14:59:36 -07:00
conpherence Reduce application search engine results list for Dashboards 2017-02-22 12:42:43 -08:00
console Remove "mysql.implementation" configuration 2016-11-22 04:15:34 -08:00
countdown Remove empty implementations of describeAutomaticCapabilities() 2016-11-09 15:24:22 -08:00
daemon Give Daemons a mobile menu 2017-03-24 09:19:56 -07:00
dashboard Provide a 'no dashboards' fallback state if you can't add any 2017-03-21 11:43:02 -07:00
differential Fix scope of "Accept" when you don't check all the "Force Accept" boxes 2017-04-06 15:03:32 -07:00
diffusion Allow the PullLocal daemon to actually hibernate 2017-04-06 15:41:19 -07:00
diviner Fix a constant typo in Diviner ("DECLARATAION" -> "TION") 2017-03-04 09:54:10 -08:00
doorkeeper Remove empty implementations of describeAutomaticCapabilities() 2016-11-09 15:24:22 -08:00
draft/storage Clean up some log spam caused by races in VersionedDraft 2016-09-05 13:01:53 -07:00
drydock Remove empty implementations of describeAutomaticCapabilities() 2016-11-09 15:24:22 -08:00
fact Update Facts for newPage 2016-04-03 15:07:52 -07:00
favorites Add some style to label in Favorites Menu 2017-02-01 07:20:31 -08:00
feed Prevent media from autoplaying when rendered as a feed story 2016-11-22 14:19:56 -08:00
files Provide "bin/files integrity" for debugging, maintaining and backfilling integrity hashes 2017-04-06 15:42:43 -07:00
flag Remove counts from home navigation 2017-01-21 13:55:40 -08:00
fund Consistently refer to 'Projects' as 'Tags' 2016-04-19 16:48:21 +00:00
guides Add a bunch of Phacility-specific code to the upstream, thinly veiled as generic code 2016-11-15 09:11:22 -08:00
harbormaster Navigage Buildkite builds with more nuance 2017-01-31 17:26:45 -08:00
help Redesign header menus and search 2017-01-17 12:13:06 -08:00
herald Reduce application search engine results list for Dashboards 2017-02-22 12:42:43 -08:00
home Fix italics issue with nux state on homepage 2017-02-25 15:30:17 -08:00
legalpad Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
lipsum Add "--force" and "--quickly" flags to bin/lipsum 2017-02-27 09:09:41 -08:00
macro Fix display of current file on Macro creation 2017-02-03 17:10:02 -08:00
maniphest Expose the commit/task/revision relationship edges to "edge.search" 2017-04-02 19:49:55 -07:00
meta Redesign Home/Profile/Projects side navigation 2017-01-31 08:59:01 -08:00
metamta Allow "bin/mail send-test" to accept raw email addresses via "--to" 2017-03-10 14:52:33 -08:00
multimeter Add a cluster.read-only option 2016-04-09 13:40:47 -07:00
notification Add an icon to aphlict connection status 2016-10-02 08:17:21 -07:00
nuance Remove some no-op "canUninstall()" Application methods 2016-12-05 11:02:25 -08:00
oauthserver Reduce application search engine results list for Dashboards 2017-02-22 12:42:43 -08:00
owners Allow Owner Packages to be in a Dashboard Panel 2017-03-30 15:13:40 -07:00
packages Reduce application search engine results list for Dashboards 2017-02-22 12:42:43 -08:00
passphrase Make Passphrase "token" credentials accessible via the API 2016-11-15 09:12:35 -08:00
paste Fix bad "editPolicy" key in Paste 2017-04-05 13:09:51 -07:00
people Paginate the profile badges view 2017-03-24 14:10:59 -07:00
phame Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
phid Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
phlux Remove empty implementations of describeAutomaticCapabilities() 2016-11-09 15:24:22 -08:00
pholio Make bin/lipsum generate hanldle generator keys and arguments more clearly 2017-02-27 09:09:28 -08:00
phortune Update PhortuneLanding page UI 2017-03-30 12:27:41 -07:00
phpast Update phpast for new UI 2016-04-05 13:52:59 -07:00
phragment Remove PhabricatorFile::buildFromFileDataOrHash() 2017-04-04 16:18:00 -07:00
phrequent Allow Phrequent to be used in dashboard panels 2017-03-06 11:00:55 -08:00
phriction Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
phurl Update Phurl for modular transactions 2017-02-24 08:30:47 -08:00
policy Make "Can Interact" and logged-out users interact more gracefully 2017-03-09 08:50:57 -08:00
ponder Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
project Remove FIELD_KEYWORDS, index project slugs as body content 2017-04-02 09:36:32 -07:00
releeph Reduce application search engine results list for Dashboards 2017-02-22 12:42:43 -08:00
remarkup/conduit
repository Allow the PullLocal daemon to actually hibernate 2017-04-06 15:41:19 -07:00
search Rename "ElasticSearch" filenames to "Elasticsearch" (2/2) 2017-04-02 14:59:36 -07:00
settings Fix bad JS rendering in "Allow Desktop Notifications" workflow 2017-02-20 12:55:34 -08:00
slowvote Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
spaces Fix errors found by PHPStan 2017-02-17 10:10:15 +00:00
subscriptions Allow task statuses to "lock" them, preventing additional comments and interactions 2017-03-02 16:57:10 -08:00
support/application
system Cache Almanac URIs for repositories 2016-12-06 09:14:45 -08:00
tokens Prevent awarding/revoking tokens when a task is locked 2017-03-04 09:55:35 -08:00
transactions Provide a missing feed transaction string for space creation 2017-04-04 10:24:11 -07:00
typeahead Drive CLI-based revision edits through "differential.revision.edit" API + EditEngine 2016-12-16 10:08:49 -08:00
uiexample Fix two typos ("Adminstrator", "Recipents") 2017-03-12 14:23:43 -07:00
xhprof Allow XHProf profiles to be drag-and-dropped to upload them 2017-02-23 11:16:19 -08:00