summary refs log tree commit diff
Commit message (Expand)AuthorAgeFilesLines
* Bump versionErik Johnston2015-05-101-1/+1
* Fix push rule bug: can't insert bool into small int columnErik Johnston2015-05-101-1/+1
* typoMatthew Hodgson2015-05-091-1/+1
* Merge branch 'hotfixes-v0.9.0-r2' of github.com:matrix-org/synapse v0.9.0-r2Erik Johnston2015-05-087-19/+67
|\
| * Bump versionErik Johnston2015-05-081-1/+1
| * Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2015-05-086-9/+15
| |\ | |/ |/|
* | Merge branch 'hotfixes-v0.9.0-r1' of github.com:matrix-org/synapse v0.9.0-r1Erik Johnston2015-05-086-9/+15
|\ \
| * | Actually rename all isntancesErik Johnston2015-05-081-1/+1
| * | Reword port script usageErik Johnston2015-05-081-2/+2
| * | Support reading directly from a configErik Johnston2015-05-081-0/+3
| * | UPGRADES: s/v0.x.x/v0.9.0Erik Johnston2015-05-081-1/+1
| * | Mention Ivan Shapovalov contrib/systemdErik Johnston2015-05-082-0/+5
| * | Bump versionErik Johnston2015-05-081-1/+1
| * | Fix port_from_sqlite_to_postgres after changes to storage layer.Erik Johnston2015-05-081-4/+2
|/ /
| * Drop the old table not the new tableMark Haines2015-05-081-1/+1
| * Rename unique constraintMark Haines2015-05-081-1/+1
| * Remove unsignedMark Haines2015-05-081-2/+2
| * Bump schema versionMark Haines2015-05-081-1/+1
| * Make the timestamps in server_keys_json bigintsMark Haines2015-05-081-0/+32
| * Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2015-05-075-8/+87
| |\ | |/ |/|
* | Merge branch 'release-v0.9.0' of github.com:matrix-org/synapse v0.9.0Erik Johnston2015-05-07200-3086/+9543
|\ \
| * | Slight rewordingErik Johnston2015-05-071-2/+10
| * | Reword docs/application_services.rstErik Johnston2015-05-071-5/+7
| * | Add some information on registering AS'sErik Johnston2015-05-072-0/+28
| * | Bump dateErik Johnston2015-05-071-1/+1
| * | Bump syweb versionErik Johnston2015-05-071-3/+3
| * | Add link to registration specErik Johnston2015-05-071-1/+2
| * | Add JIRA issue idErik Johnston2015-05-071-2/+2
| * | Explain the change in AS /register apiErik Johnston2015-05-071-1/+4
| * | Change log: Link to application services spec.Erik Johnston2015-05-061-2/+3
| * | Move CAPTCHA_SETUP to docs/Erik Johnston2015-05-061-0/+0
| * | Linkify docs/postgres.sqlErik Johnston2015-05-061-1/+2
| * | Update change log to be more detailedErik Johnston2015-05-061-3/+14
| * | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.9.0Erik Johnston2015-05-0615-2/+4
| |\ \
| * | | Update change logErik Johnston2015-05-061-4/+28
| * | | Bump versionErik Johnston2015-05-061-1/+1
| | | * revert accidental bcrypt gensalt round reduction from loadtestingMark Haines2015-05-071-1/+1
| | | * pynacl-0.3.0 was released so we can finally start using it directly from pypiMark Haines2015-05-072-7/+2
| | | * Merge branch 'develop' of github.com:matrix-org/synapse into developDavid Baker2015-05-0731-140/+267
| | | |\
| | | | * Optional profiling using cProfileMark Haines2015-05-061-1/+21
| | | | * Don't read from the config file before checking it existsMark Haines2015-05-061-9/+10
| | | |/ | | |/|
| | * | Merge pull request #140 from matrix-org/erikj/scripts_refactorMark Haines2015-05-0615-2/+4
| |/| |
| | * | Acutally add scripts-dev/Erik Johnston2015-05-0611-0/+549
| | * | Re-add scripts/register_new_matrix_userErik Johnston2015-05-061-0/+153
| | * | Seperate scripts/ into scripts/ and scripts-dev/, where scripts/* are automat...Erik Johnston2015-05-0615-704/+4
| |/ /
| * | Merge pull request #138 from matrix-org/erikj/SYN-371Mark Haines2015-05-051-22/+0
| |\ \
| | * \ Merge branch 'erikj/executemany' of github.com:matrix-org/synapse into erikj/...Erik Johnston2015-05-058-48/+129
| | |\ \
| | * | | Don't insert without deduplication. In this case we never actually use this t...Erik Johnston2015-05-051-22/+0
| * | | | Merge pull request #137 from matrix-org/erikj/executemanyMark Haines2015-05-057-55/+100
| |\ \ \ \ | | | |/ / | | |/| |
| | * | | And use buffer(...) there as wellErik Johnston2015-05-052-2/+3
| | * | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/executemanyErik Johnston2015-05-058-46/+118
| | |\ \ \ | | |/ / / | |/| | |
| * | | | Use buffer(...) when inserting into bytea columnErik Johnston2015-05-052-4/+3
| * | | | Merge pull request #139 from matrix-org/bugs/SYN-369Mark Haines2015-05-054-16/+80
| |\ \ \ \
| | * | | | Add some doc-stringMark Haines2015-05-051-0/+4
| | * | | | Collect the invalidate callbacks on the transaction object rather than passin...Mark Haines2015-05-057-51/+51
| | * | | | SYN-369: Add comments to the sequence number logic in the cacheMark Haines2015-05-051-0/+7
| | * | | | Add debug flag in synapse/storage/_base.py for debugging the cache logic by c...Mark Haines2015-05-051-1/+12
| | * | | | Invalidate the room_member cache if the current state events updatesMark Haines2015-05-051-0/+5
| | * | | | Missing return for when the event was already persistedMark Haines2015-05-051-1/+1
| | * | | | Invalidate the caches from the correct threadMark Haines2015-05-056-29/+46
| | * | | | Sequence the modifications to the cache so that selects don't race with insertsMark Haines2015-05-051-3/+23
| * | | | | Fix the --help option for synapseMark Haines2015-05-051-18/+29
| * | | | | Missed events are not outliersErik Johnston2015-05-051-1/+1
| | | * | | Add a comment about the zip(*[zip(sorted(...),...)])Erik Johnston2015-05-051-0/+8
| | | |/ /
| | | * | Fix indentationErik Johnston2015-05-051-10/+10
| | | * | Add support for using executemanyErik Johnston2015-05-055-61/+99
| | |/ / | |/| |
| * | | Don't call 'encode_parameter' no-opErik Johnston2015-05-053-10/+0
| |/ /
| * | Correctly name transactionErik Johnston2015-05-051-1/+1
| * | Remove some unused indexesErik Johnston2015-05-011-0/+18
| * | Don't log enqueue_Erik Johnston2015-05-011-1/+0
| | * TypoDavid Baker2015-05-071-1/+1
| |/
| * user_id now in user_threepidsDavid Baker2015-05-012-6/+6
| * That wasn't a deferredErik Johnston2015-05-012-4/+2
| * Remove inlineCallbacks from non-generatorErik Johnston2015-05-011-2/+0
| * TypoErik Johnston2015-05-011-1/+1
| * Remove some run_on_reactorsErik Johnston2015-05-013-10/+0
| * Don't log all auth events every time we call auth.checkErik Johnston2015-05-011-1/+4
| * Use the daemonize key from the config if it existsMark Haines2015-05-011-1/+4
| * Don't use self.execute: it's designed for fetching stuffDavid Baker2015-05-011-3/+8
| * database config is not kept in separate config file anymoreMark Haines2015-05-011-13/+9
| * Merge pull request #136 from matrix-org/markjh/config_cleanupMark Haines2015-05-0119-496/+572
| |\
| | * Allow generate-config to run against an existing config file to generate defa...Mark Haines2015-05-013-14/+26
| | * Allow "manhole" to be ommited from the configMark Haines2015-04-301-1/+1
| | * Remove the ~, comment the lines insteadMark Haines2015-04-302-2/+2
| | * Update key.pyMark Haines2015-04-301-1/+2
| | * Update metrics.pyMark Haines2015-04-301-2/+2
| | * Update README.rstMark Haines2015-04-301-1/+1
| | * missing importMark Haines2015-04-301-0/+2
| | * read the pid_file from the config file in synctlMark Haines2015-04-302-3/+4
| | * Can't specify bind-port on the cmdline anymoreMark Haines2015-04-301-2/+1
| | * Merge branch 'develop' into markjh/config_cleanupMark Haines2015-04-3016-88/+176
| | |\
| | * | Write a default log_config when generating configMark Haines2015-04-305-6/+59
| | * | Don't break when sizes or durations are given as integersMark Haines2015-04-302-12/+15
| | * | Add a random string to the auto generated key idMark Haines2015-04-301-1/+3
| | * | Allow --enable-registration to be passed on the commandlineMark Haines2015-04-301-3/+16
| | * | Use disable_registration keys if they are presentMark Haines2015-04-301-0/+5
| | * | Allow multiple config files, set up a default config before applying the conf...Mark Haines2015-04-303-23/+40
| | * | remove duplicate parse_size methodMark Haines2015-04-302-10/+0
| | * | Manually generate the default config yaml, remove most of the commandline arg...Mark Haines2015-04-3017-478/+457
| * | | No id field on userDavid Baker2015-05-011-5/+1
| * | | More missed get_user_by_id API changesDavid Baker2015-05-012-4/+4
| * | | One too many lensErik Johnston2015-05-011-1/+1
| * | | Change public room list to use defer.gatherResultsErik Johnston2015-05-011-5/+13
| * | | This api now no longer returns an arrayDavid Baker2015-05-011-1/+1
| * | | Don't wait for storage of access_tokenErik Johnston2015-05-011-1/+1
| * | | Cache latest_event_ids_in_roomErik Johnston2015-05-011-1/+4
| * | | Don't lock user_ips table for upsert.Erik Johnston2015-05-012-4/+10
| * | | Fix bug where we reconnected to the database on every query.Erik Johnston2015-05-012-1/+2
| * | | Split a storage function in two so that we don't have to do extra work.Erik Johnston2015-05-013-8/+14
| * | | Remove pointless joinErik Johnston2015-04-301-5/+4
| * | | Fix broken SQLErik Johnston2015-04-301-1/+1
| * | | Need more yieldErik Johnston2015-04-301-1/+1
| * | | Add missing paramErik Johnston2015-04-301-1/+1
| * | | More join conditionsErik Johnston2015-04-301-2/+6
| * | | Add more conditions on JOINs to make postgres go a little faster.Erik Johnston2015-04-302-4/+6
| * | | Fix up get_current_state and get_room_name_and_aliases queries to parse event...Erik Johnston2015-04-302-32/+30
| | |/ | |/|
| * | Add get_rooms_for_user cacheErik Johnston2015-04-301-0/+2
| * | Undo changes to logger config, ie. remove the access_log_file option: decisio...David Baker2015-04-301-16/+0
| * | Do access log using python's logging stuff, just under a separate logger nameDavid Baker2015-04-302-14/+39
| * | Don't use sub queries, it makes postgres sadErik Johnston2015-04-301-11/+5
| * | SYN-367: Use upsert rather than insert_or_replaceMark Haines2015-04-301-2/+6
| * | Don't needlessly join on state_eventsErik Johnston2015-04-302-6/+4
| * | Add an access_logDavid Baker2015-04-303-3/+29
| * | Unused importDavid Baker2015-04-301-1/+1
| * | Doesn't look like this is used anymoreDavid Baker2015-04-301-13/+0
| * | Make simple query rather than long one and then throw away half the resultsErik Johnston2015-04-302-2/+11
| * | Correctly decode, for sqlite and postgres, rows from pushers tableErik Johnston2015-04-291-19/+24
| * | pushkey' are also bytes.Erik Johnston2015-04-291-8/+17
| * | TypoErik Johnston2015-04-291-1/+1
| * | Also remove yield from within lock in the other generatorErik Johnston2015-04-291-8/+6
| * | Fix deadlock in id_generators. No idea why this was an actual deadlock.Erik Johnston2015-04-291-14/+16
| * | Also log when we've started pushersErik Johnston2015-04-291-0/+2
| * | Revert previousErik Johnston2015-04-291-5/+1
| * | Only start pushers when synapse has fully startedErik Johnston2015-04-292-4/+5
| * | Start pushers on reactor threadErik Johnston2015-04-291-0/+3
| * | Actually return rowsErik Johnston2015-04-291-0/+2
| * | Typo, args wrong way roundErik Johnston2015-04-291-4/+1
| * | Decode buffers in same threadErik Johnston2015-04-291-13/+19
| * | We store pusher data as bytesErik Johnston2015-04-291-2/+2
| * | Fix off by one in presence token handlingErik Johnston2015-04-291-1/+1
| * | Decode the data json in the storage layer (was moved but this part was missed)David Baker2015-04-292-1/+14
| * | Oops, update the contraint tooDavid Baker2015-04-291-1/+1
| * | Be more postgressiveDavid Baker2015-04-292-4/+4
| * | Be postgressiveDavid Baker2015-04-291-4/+3
| * | Oops, forgot the schema delta fileDavid Baker2015-04-291-0/+10
| * | txn.execute doesn't return cursorsErik Johnston2015-04-291-4/+4
| * | txn.execute doesn't return cursorsErik Johnston2015-04-291-2/+2
| * | Fix invalid SQL to work in postgres landErik Johnston2015-04-291-4/+6
| * | Accept camelcase + underscores in binding tooDavid Baker2015-04-291-2/+17
| |/
| * Fix includesDavid Baker2015-04-291-1/+2
| * Accept both camelcase and underscore threepid creds for transitionDavid Baker2015-04-291-4/+19
| * pushers table requires an access_tokenErik Johnston2015-04-291-0/+1
| * Fix whitespaceMark Haines2015-04-291-1/+1
| * Check requirements before doing anything else when running the homeserverMark Haines2015-04-291-1/+4
| * bump syutil to 0.0.6Mark Haines2015-04-291-3/+3
| * We can't use REPLACE when upgrading databases now we have postgresErik Johnston2015-04-291-1/+2
| * Merge pull request #129 from matrix-org/key_distributionErik Johnston2015-04-2915-76/+966
| |\
| | * bump database schema versionMark Haines2015-04-292-1/+1
| | * Use a defer.gatherResults to collect results from the perspective serversMark Haines2015-04-291-11/+21
| | * Use bytea rather than BLOBMark Haines2015-04-291-1/+1
| | * Merge branch 'develop' into key_distributionMark Haines2015-04-29115-1134/+4442
| | |\
| | * | Update the query format used by keyring to match current key v2 specMark Haines2015-04-291-1/+12
| | * | Implement minimum_valid_until_ts in the remote key resourceMark Haines2015-04-292-4/+56
| | * | And don't bump the schema version unnecessarilyMark Haines2015-04-281-1/+1
| | * | Add server_keys.sql to the current delta rather than creating a new deltaMark Haines2015-04-281-0/+0
| | * | Merge branch 'develop' into key_distributionMark Haines2015-04-275-28/+74
| | |\ \
| | * | | Add config for setting the perspective serversMark Haines2015-04-243-5/+27
| | * | | Merge branch 'develop' into key_distributionMark Haines2015-04-241-1/+1
| | |\ \ \
| | * \ \ \ Merge branch 'develop' into key_distributionMark Haines2015-04-241-0/+1
| | |\ \ \ \
| | * | | | | Add a config file for perspective serversMark Haines2015-04-242-0/+30
| | * | | | | Copyright noticeMark Haines2015-04-241-0/+14
| | * | | | | Merge branch 'develop' into key_distributionMark Haines2015-04-2412-67/+309
| | |\ \ \ \ \
| | * | | | | | Move the key related config parser into a separate fileMark Haines2015-04-243-85/+113
| | * | | | | | Better help for the old-signing-key optionMark Haines2015-04-241-1/+4
| | * | | | | | Update to match the specification for key/v2Mark Haines2015-04-233-21/+26
| | * | | | | | Implement remote key lookup apiMark Haines2015-04-227-61/+252
| | * | | | | | Merge branch 'develop' into key_distributionMark Haines2015-04-219-296/+258
| | |\ \ \ \ \ \
| | * \ \ \ \ \ \ Merge branch 'develop' into key_distributionMark Haines2015-04-208-28/+151
| | |\ \ \ \ \ \ \
| | * | | | | | | | Implement v2 key lookupMark Haines2015-04-202-18/+254
| | * | | | | | | | Add methods for storing and retrieving the raw key jsonMark Haines2015-04-152-3/+59
| | * | | | | | | | Fail quicker for 4xx responses in the key client, optional hit a different AP...Mark Haines2015-04-151-6/+31
| | * | | | | | | | Return a sha256 fingerprint rather than the entire tls certificateMark Haines2015-04-143-3/+33
| | * | | | | | | | Add a version 2 of the key server apiMark Haines2015-04-146-2/+179
| * | | | | | | | | Merge pull request #135 from matrix-org/erikj/postgres_charset_checkMark Haines2015-04-296-8/+61
| |\ \ \ \ \ \ \ \ \
| | * | | | | | | | | Make postgres database error slightly more helpfulErik Johnston2015-04-292-13/+17
| | * | | | | | | | | Use __all__ instead of assert to stop pyflakes from warning about unused impo...Erik Johnston2015-04-291-2/+3
| | * | | | | | | | | Merge branch 'develop' into erikj/postgres_charset_checkMark Haines2015-04-292-1/+17
| | |\ \ \ \ \ \ \ \ \ | | | | |_|_|_|_|_|_|/ | | | |/| | | | | | |
| | * | | | | | | | | Appease PEP8Erik Johnston2015-04-291-0/+2
| | * | | | | | | | | Check that postgres database has correct charset setErik Johnston2015-04-296-1/+47
| * | | | | | | | | | minimal docMatthew Hodgson2015-04-291-0/+4
| * | | | | | | | | | Merge pull request #134 from intelfx/contrib-systemdMatthew Hodgson2015-04-292-0/+35
| |\ \ \ \ \ \ \ \ \ \ | | |_|/ / / / / / / / | |/| | | | | | | | |
| | * | | | | | | | | contrib/systemd: add a sample systemd unit file and a logger configurationIvan Shapovalov2015-04-292-0/+35
| | |/ / / / / / / /
| * | | | | | | | | Mention that postgres databases must have the correct charset encodingErik Johnston2015-04-291-0/+17
| * | | | | | | | | Delete ugly commented out log line.Mark Haines2015-04-291-1/+0
| |/ / / / / / / /
| * | | | | | | | improve postgres blurb a bitMatthew Hodgson2015-04-291-7/+18
| * | | | | | | | comment out ugly test loglineMatthew Hodgson2015-04-291-1/+1
| * | | | | | | | mention silviof's dockerfileMatthew Hodgson2015-04-291-0/+3
| * | | | | | | | general clean up. s/alpha/beta/g. add intelfx's AUR package for Arch. s/the h...Matthew Hodgson2015-04-291-46/+88
| * | | | | | | | Fix rstErik Johnston2015-04-281-1/+2
| * | | | | | | | Update docs/postgres.rst to explain port script usageErik Johnston2015-04-281-0/+51
| * | | | | | | | Add better help to scripts/port_from_sqlite_to_postgres.pyErik Johnston2015-04-281-5/+27
| * | | | | | | | Ensure we never miss any presence updatesErik Johnston2015-04-281-1/+7
| * | | | | | | | Fix typoErik Johnston2015-04-281-1/+1
| * | | | | | | | Ensure the serial returned by presence is always an integerErik Johnston2015-04-281-3/+3
| * | | | | | | | Merge pull request #123 from matrix-org/postgresErik Johnston2015-04-2882-822/+2905
| |\ \ \ \ \ \ \ \
| | * | | | | | | | Remove unused importsErik Johnston2015-04-281-2/+1
| | * | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into postgresErik Johnston2015-04-2837-304/+1361
| | |\ \ \ \ \ \ \ \ | | |/ / / / / / / / | |/| | | | | | | |
| * | | | | | | | | Merge pull request #126 from matrix-org/csauthMark Haines2015-04-2834-287/+1323
| |\ \ \ \ \ \ \ \ \
| | * | | | | | | | | Add commentage.David Baker2015-04-271-0/+4
| | * | | | | | | | | pep8David Baker2015-04-271-1/+2
| | * | | | | | | | | logging argsDavid Baker2015-04-271-2/+2
| | * | | | | | | | | Change to https for ID server communicationDavid Baker2015-04-241-3/+2
| | * | | | | | | | | More underscoresDavid Baker2015-04-242-4/+4
| | * | | | | | | | | Use underscores instead of camelcase for id server stuffDavid Baker2015-04-243-14/+14
| | * | | | | | | | | pep8David Baker2015-04-241-2/+2
| | * | | | | | | | | Merge branch 'develop' into csauthDavid Baker2015-04-2418-368/+585
| | |\ \ \ \ \ \ \ \ \
| | * | | | | | | | | | Dedicated error code for failed 3pid auth verificationDavid Baker2015-04-232-1/+4
| | * | | | | | | | | | Remove ultimately unused feature of saving params from the first call in the ...David Baker2015-04-231-2/+10
| | * | | | | | | | | | Add an error code to 'missing token' response.David Baker2015-04-232-1/+3
| | * | | | | | | | | | Remove now-redundant email configDavid Baker2015-04-232-44/+1
| | * | | | | | | | | | pep8David Baker2015-04-171-1/+1
| | * | | | | | | | | | Password reset, finally.David Baker2015-04-173-7/+38
| | * | | | | | | | | | Add endpoint to get threepids from serverDavid Baker2015-04-172-0/+23
| | * | | | | | | | | | pep8David Baker2015-04-174-9/+6
| | * | | | | | | | | | make add3pid servlet workDavid Baker2015-04-174-12/+82
| | * | | | | | | | | | just the once would probably be fineDavid Baker2015-04-171-1/+0
| | * | | | | | | | | | Merge branch 'develop' into csauthDavid Baker2015-04-1745-537/+1817
| | |\ \ \ \ \ \ \ \ \ \
| | * | | | | | | | | | | Register the 3pid servletDavid Baker2015-04-171-1/+3
| | * | | | | | | | | | | password -> account servlet and add start of an 'add 3pid' endpointDavid Baker2015-04-172-2/+17
| | * | | | | | | | | | | Need to yield the username check, otherwise very very weird things happen.David Baker2015-04-171-1/+1
| | * | | | | | | | | | | Oops, left debugging in.David Baker2015-04-161-6/+0
| | * | | | | | | | | | | Return user ID in use error straight awayDavid Baker2015-04-164-66/+88
| | * | | | | | | | | | | Dummy login so we can do the first POST request to get login flows without it...David Baker2015-04-154-7/+24
| | * | | | | | | | | | | Regstration with email in v2David Baker2015-04-156-29/+123
| | * | | | | | | | | | | Add app service auth back in to v2 registerDavid Baker2015-04-022-5/+8
| | * | | | | | | | | | | Throw sensible errors on not-json when allowing empty bodyDavid Baker2015-04-021-1/+4
| | * | | | | | | | | | | pep8David Baker2015-04-021-0/+1
| | * | | | | | | | | | | Add shared secret auth into register v2 and switch the script over.David Baker2015-04-023-15/+63
| | * | | | | | | | | | | Explain how I justified to myself making JsonResource not always send JSON.David Baker2015-04-011-0/+7
| | * | | | | | | | | | | Completely replace fallback auth for C/S V2:David Baker2015-04-016-26/+280
| | * | | | | | | | | | | Make docs a bit more trueDavid Baker2015-03-311-1/+1
| | * | | | | | | | | | | Grammar and deduplicationDavid Baker2015-03-311-5/+4
| | * | | | | | | | | | | pep8David Baker2015-03-313-4/+5
| | * | | | | | | | | | | Update CAPTCHA_SETUP (it continues to ignore fallback, but I guess I should f...David Baker2015-03-301-21/+6
| | * | | | | | | | | | | Add original, unmodified CAPTCHA-SETUP from the webclient repo before modifyi...David Baker2015-03-301-0/+46
| | * | | | | | | | | | | New registration for C/S API v2. Only ReCAPTCHA working currently.David Baker2015-03-308-16/+192
| | * | | | | | | | | | | pep8David Baker2015-03-261-2/+4
| | * | | | | | | | | | | Delete pushers when changing passwordDavid Baker2015-03-263-37/+31
| | * | | | | | | | | | | pep8 blank linesDavid Baker2015-03-251-1/+0
| | * | | | | | | | | | | Allow multiple pushers for a single app ID & pushkey, honouring the 'append' ...David Baker2015-03-255-28/+96