Releases: lacanoid/datalink
DLREPLACECONTENT
Major improvements!
- added preliminary
curl_save()
function to download web content to a local file. - added preliminary
dlreplacecontent()
function to replace the content of a linked file. dl_directory
check constraint that dirpath is like '/%/'- new
is_local()
,is_valid()
asis_http_success()
immutable functions, for use in check constraints and such - add
read()
andwrite()
functions to read and write binary files - add
has_updated(datalink)
to check for file changes - forbid * in file names
- new
iri()
function to convert IRIs (unicode) to URIs (escaped) dlvalue()
now supportsIRI
link type, bug fixes- dump/restore improvements (function
datalink.set_online()
) - added
datalink.http_response_codes
reference table - simplify
file:
URLs to be without host if not needed - rename
dlurlpathwrite()
todatalink.filepathwrite()
as it doesn't conform to the standard - rename
dl_file_admin()
todl_file_new()
- rename
dl_admin_files
todl_new_files
- improve the way options are specified for
curl_get()
- improved temporary files handling, don't delete them when linked
- added tables
datalink.dl_access_web
anddatalink.access_web
table and view - added preliminary
has_web_privilege()
functions - remove function
instr()
- improve function
substr()
to return proper substrings - datalinks can now be domains on domains
WRITE ACCESS DB
Most notably, WRITE ACCESS DB is now implemented, with write tokens and everything.
- more documentation (manual)
- new
write_text()
functions - datalinker now better split into
dlfm
(admin tool) andpg_datalinker
(daemon) - improved systemd support
dlfm
supportsbind
andunbind
operations- added preliminary
dlcat
shell command (in C, DLFF for DLURLPATH) - changing link control options works for non superusers
- changing link control options works in many cases when values are present
- removed implicit from datalink to jsonb cast
- lco number assignment changes in
link_control_options
to be more logical - some boolean args changed to integer to be more consistent
- new
commit()
procedure - new
dl_admin_files
table to keep track of administered files, this is currently used to keep track of files created withwrite_file()
. - new
dl_file_admin()
function - datalinker status improvements
- datalinker now automatically deletes temporary files and files created in aborted transactions ($opt_A)
- preliminary
revisions()
andrevision()
functions
READ ACCESS DB
Most notably, READ ACCESS DB
is now implemented, with read tokens and everything.
- fixed utf8 decoding in
curl_get
,read_file
andread_lines
- slightly changed order and assignments in link_control_options
- improved support for file path to url mapping
- improved support for READ ACCESS DB
- new function
dl_authorize(file_path)
to authorize a file path - functions
dlurlpath
,dlurlcomplete
,read_text
andread_lines
now support read access tokens - added simple apache2 mod_perl module to authorize read access db
- renamed
datalink.dl_url
todatalink.url
- new function
dl_lco(datalink)
to get LCO for a (linked) datalink - load initial contents of
datalink.dl_directory
from file/etc/postgresql-common/dl_directory
if it exists
More file operations and permissions
- shortened json keys (url,token,text,old,type) -> (a,b,c,o,t)
- include read_access flag in datalink (r)
- include mapping flag in datalink (m)
- new view
datalink.access
with triggers to updatedatalink.directory.diracl
- new function
datalink.has_file_privilege()
to enquire about file privileges - initial
datalink.insight
table for future read access management - stricter checks for file paths in
dlvalue()
- added
substr
,instr
,fileexists
,filegetname
andgetlength
bfile compatibility functions - you can specify ranges in
read_text
andread_lines
- check for SELECT privilege in
read_text
andread_lines
- check for DELETE privilege in
dl_datalink_ref
Foreign servers, directories, domains...
Lots of new features:
dlurlserver()
now returns NULL for no server- add
basename
touri_get()
anduri_set()
- added
datalink.directory
relation. now datalinks also work like efile, withdlvalue(path,directory)
- preliminary foreign server support for FILE URLs in
datalink.curl_get()
- now you can create domains on datalinks
datalink.read
function renamed todatalink.read_text
- new
datalink.read_lines
set returning function to stream text files dlurlscheme()
now returns uppercase, as per SQL standard
datalink.read(datalink)
- added datalink.read(datalink) function to read file contents
- raise a warning if datalinker is not running but it should
- curl_get() function now includes timing, fold retcode return field into rc
- pg_datalinker now uses SELECT FOR UPDATE, less verbose
Trigger improvements
Datalink triggers are now only created when needed. This makes writing to tables with datalink columns and no link control much faster.
Bug fixes.
Write access improvements
Implemented write access settings BLOCKED
, ADMIN
and TOKEN
.
SQL/MED functions for getting URL parts now work on text as well as datalinks. For example, you can use dlurlcomplete(url)
to normalize URLs.
You can now also convert relative to absolute links with dlvalue(url,dlvalue(base))
.
Datalinker daemon is improved, with less bugs.
Some renaming and internal reorganization. datalink.column_options
is now datalink.columns
.
Revert files from backups
Volumes, where files can be located.
Now you can revert old files from backups.
Lots of improvements in datalinker.
Improved DLVALUE()
A number of little bug fixes and improvements.
You can use dlvalue() functions with file paths now, automatically converting them to urls.
See CHANGELOG for more details.