Implement exact filename searches properly, implement random-substring
[deb/packages.git] / SEARCHES
1
2 SEARCHES
3 ========
4
5 Overview over all types of searches that are supported and which
6 parameters they use.
7
8 general TODO: allow to search for a specific version?
9
10 parameter types:
11 ----------------
12
13 PKG_NAME =~ ^[\w+.-]+$
14 SUITE_NAME =~ ^[\w-]+$
15 ARCHIVE_NAME =~ ^[\w-]+$
16 SECTION_NAME =~ ^[\w-]+$
17 ARCH_NAME =~ ^[\w-]+$
18 PATH_NAME =~ ^[\w.:+/-]+$ <-- what to allow here?
19
20 if an parameter type is suffixes with (s) this means you can
21 specify an array of values separated by commas.
22
23 package, suite, archive, section, and arch can also be specified via
24 PATH_INFO (mode too?). They can not take more than one value then, though.
25
26
27 search for package name:
28 ------------------------
29
30 required parameters:
31  keywords [PKG_NAME]
32 optional parameters:
33  suite    [SUITE_NAME(s) | 'all']    default='all'
34  archive  [ARCHIVE_NAME(s) | 'all' ] default='all'
35  section  [SECTION_NAME(s) | 'all' ] default='all'
36  arch     [ARCH_NAME(s) | 'any' ]    default='any'
37  exact    [BOOL]                     default=1
38
39 TODO: Allow more than one keyword
40
41 full text search in package names and descriptions:
42 ---------------------------------------------------
43
44 required parameters:
45  keywords [STRING]
46 optional parameters:
47  suite    [SUITE_NAME(s) | 'all']    default='all'
48  archive  [ARCHIVE_NAME(s) | 'all' ] default='all'
49  section  [SECTION_NAME(s) | 'all' ] default='all'
50  arch     [ARCH_NAME(s) | 'any' ]    default='any'
51  exact    [BOOL]                     default=1
52
53 TODO: Allow more than one keyword
54
55 display one package:
56 --------------------
57
58 required parameters:
59  package  [PKG_NAME]
60  suite    [SUITE_NAME]
61 optional parameters:
62  archive  [ARCHIVE_NAME(s) | 'default' | 'all' ] default=( us security non-US )
63  section  [SECTION_NAME(s) | 'all' ]             default='all'
64  arch     [ARCH_NAME(s) | 'any' ]                default='any'
65
66 download one package:
67 ---------------------
68
69 required parameters:
70  package  [PKG_NAME]
71  suite    [SUITE_NAME]
72  arch     [ARCH_NAME]
73 optional parameters:
74  archive  [ARCHIVE_NAME(s) | 'default' | 'all' ] default=( us security non-US )
75
76 TODO: support section?
77
78 show file list for one package:
79 -------------------------------
80
81 required parameters:
82  package  [PKG_NAME]
83  suite    [SUITE_NAME]
84  arch     [ARCH_NAME]
85 optional parameters:
86  archive  [ARCHIVE_NAME(s) | 'default' | 'all' ] default=( us security non-US )
87
88 TODO: support section?
89
90 search for file:
91 ----------------
92
93 required parameters:
94  keyword [PATH_NAME]
95 ?suite   [SUITE_NAME]
96 ?arch    [ARCH_NAME]
97 ?mode    [ 'file' | 'dir' | 'full' ]
98 optional parameters:
99  archive  [ARCHIVE_NAME(s) | 'default' | 'all' ] default=( us security non-US )
100
101 TODO: support section?
102       suite/arch were required in the old version, still are?
103       which modes do we want? The old ones were "files", "dirs+files", "full"