Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

553 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Specify!

What is it good for

Absolutely (Almost) Everything

Specify is one part of the two part stack of Specify and Specified.

Specify collects data from the system it's running on and then passes all this data to a website; spec-ify.com, henceforth Specified.

Methodology

Specify probes various WMI and win32 classes on the host machine for an exhaustive list of data, parsing and pushing keyed information into a JSON standard object tree.

What kinds of data?

Specify is developed with the intent of being used as a quick way to relay the state of one's system to another person, as such, the data gathered is always whatever is relevant for the diagnosis of a tech issue.

There is no explicitly sensitive or private information that gets passed in. This does not necessarily mean that there is no subjectively sensitive or private information that does get included into the snapshot that Specify generates.

There is a good-will effort to give the user the option to omit certain pieces of information that can be most sensitive, the username of the host machine, and the path for commercial OneDrive instances, which by nature include places of work or education in their path.

Data Retention

The snapshot generated by Specify is as previously mentioned, a JSON object tree that is passed to Specified via an internal POST request. This snapshot lives as a .json file in the webserver's file architecture so Specified can ingest and format the information into the desired view.

This JSON file has an expiration date of 24 hours, after which it is deleted automatically. This does mean that your snapshot, should you want to revisit it, will potentially have to be re-ran.

If prompted, Specify will upload your recent Minidumps to our server, for others to analyze. These are also automatically deleted after 24 hours.

No information is otherwise kept in storage on the server, and no cookies are set by Specified.

Fallback

As previously mentioned, Specify automatically POSTs the results of its runtime to Specified and then automatically opens the customized page, while also copying that URL to the clipboard.

Alternatively, whenever Specify is unable to complete said POST request, or is set to not upload by the user, the .json file is instead written into the same directory as the Specify executable is ran from. This .json can then be manually uploaded to Specified to generate the view.

Development

Due to the Windows first nature of the project, development is only supported on Windows.

The project currently targets:

  • C# v14.0
  • Dotnet Framework v4.7.2 (to support running on old versions of Windows)

The easiest way to build the project is with Visual Studio. Download the most recent version of Visual Studio, launch it with Administrator privileges, and use it to open client/client.sln.

From here, building and running is the same process as any other Visual Studio project. Any debug logs generated by the client will be located next to the executable, in client/bin/Debug (or Release depending on the build configuration).

About

Specify: a lightweight and fast tool to gather information about a Windows computer, designed for support purposes

Resources

Contributing

Stars

54 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages